Python 正则匹配数字

Python 正则匹配数字

Python 正则匹配数字

正则表达式是一种强大的文本匹配工具,可以帮助我们在文本中查找特定模式的字符串。在Python中,通过re模块可以轻松地使用正则表达式。本文将详细介绍如何使用正则表达式来匹配数字。

匹配整数

首先,我们来看如何匹配整数。整数由一串数字组成,可以包含正负号。下面是一个简单的正则表达式,可以用来匹配整数:

import re

pattern = r"[-+]?\d+"
text = "The number is 42"

match = re.search(pattern, text)
if match:
    print("Found:", match.group())
else:
    print("No match")

在这个示例中,我们使用re.search()函数来在text中查找符合pattern的整数。pattern是一个正则表达式,[-+]表示整数可以包含正负号,\d+表示整数由一个或多个数字组成。

运行结果为:

Found: 42

我们成功地从text中匹配到了整数42。

匹配小数

接下来,我们看如何匹配小数。小数由整数部分、小数点和小数部分组成。下面是一个匹配小数的正则表达式:

pattern = r"[-+]?\d+\.\d+"
text = "The number is 3.14"

match = re.search(pattern, text)
if match:
    print("Found:", match.group())
else:
    print("No match")

在这个示例中,我们使用[\+\-]?\d+\.\d+来匹配小数。[\+\-]表示小数可以包含正负号,\d+\.\d+表示小数由一个或多个数字、一个小数点和一个或多个数字组成。

运行结果为:

Found: 3.14

我们成功地从text中匹配到了小数3.14。

匹配科学计数法

有时候数字会以科学计数法的形式表示,如3.0e8表示3乘以10的8次方。下面是一个匹配科学计数法的正则表达式:

pattern = r"[-+]?\d+\.\d+[eE][-+]?\d+"
text = "The speed of light is 3.0e8 m/s"

match = re.search(pattern, text)
if match:
    print("Found:", match.group())
else:
    print("No match")

在这个示例中,我们使用[-+]?\d+\.\d+[eE][-+]?\d+来匹配科学计数法。[-+]?\d+\.\d+表示科学计数法的小数部分,[eE]表示科学计数法的e或E,[-+]?\d+表示科学计数法的指数部分。

运行结果为:

Found: 3.0e8

我们成功地从text中匹配到了科学计数法3.0e8。

匹配多个数字

有时候我们需要从文本中匹配多个数字,可以使用re.findall()函数来找到所有匹配的数字。下面是一个匹配多个整数的示例:

pattern = r"[-+]?\d+"
text = "The numbers are 42 and -100"

matches = re.findall(pattern, text)
for match in matches:
    print("Found:", match)

在这个示例中,我们使用re.findall()函数找到了所有匹配pattern的整数。matches是一个包含所有整数的列表,我们可以逐一打印出来。

运行结果为:

Found: 42
Found: -100

我们成功地从text中匹配到了整数42和-100。

结论

使用正则表达式可以方便地从文本中匹配数字,无论是整数、小数还是科学计数法。通过灵活运用正则表达式,我们可以快速有效地提取出需要的信息。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程