Python 如何使用正则表达式匹配任何非数字字符
正则表达式是一组字符,允许您使用搜索模式查找一个字符串或一组字符串。RegEx是正则表达式的另一个名称。Python中的re模块用于处理正则表达式。
在本文中,我们将看到如何使用正则表达式在Python中提取非数字字符。我们使用 \D+ 正则表达式来从字符串中获取非数字字符。
其中,
\D
返回不包含数字的匹配项。+
表示字符的零个或多个出现。
使用findall()函数
在下面的示例中,假设我们将字符串“2018Tutorials point”作为字符串,我们需要消除数字2018并提取Tutorials point。
示例
在下面的示例代码中,我们使用 findAll() 函数使用正则表达式匹配任何非数字字符。我们首先导入正则表达式模块。
import re
然后,我们使用了从re模块导入的 findall() 函数。
import re
string = "2018Tutorials point"
pattern= [r'\D+']
for i in pattern:
match= re.findall(i, string)
print(match)
re.findall() 函数返回一个包含所有匹配项的列表,也就是一个包含非数字字符串的列表。
输出
执行以上程序后,将获得以下输出。
['Tutorials point']
示例
让我们看一个字符串有多个数字的另一个示例。在这里,我们假设“5个孩子3个男孩2个女孩”作为输入短语。输出应该返回所有非数字的字符串。
import re
string = "5 childrens 3 boys 2 girls"
pattern= [r'\D+']
for i in pattern:
match= re.findall(i, string)
print(match)
输出
执行上述程序后,获得以下输出。
[' childrens ', ' boys ', ' girls']
使用search()函数
在下面的代码中,我们匹配字符串’5 childrens 3 boys 2 girls’,其中提取了所有非数字的字符串’childrens boys girls’。
示例
在下面的示例代码中,我们使用 search() 函数使用正则表达式在Python中匹配任何非数字字符。我们首先导入正则表达式模块。
import re
然后,我们使用了从re模块导入的 search() 函数来获取所需的字符串。这个 re.search() 函数会搜索字符串/段落以寻找匹配项,并在有匹配时返回一个匹配对象。 group() 方法用于返回与匹配的部分字符串。
import re
phrase = 'RANDOM 5childerns 3 boys 2 girls//'
pattern = r'(?<=RANDOM).*?(?=//)'
match = re.search(pattern, phrase)
text = match.group(0)
nonDigit = re.sub(r'\d', '', text)
print(nonDigit)
输出
运行上述程序后,可以得到以下输出结果。
childerns boys girls