如何在Python中使用正则表达式匹配任何非数字字符?


正则表达式是一组字符,允许您使用搜索模式查找字符串或一组字符串。RegEx是正则表达式的另一个名称。Python中的re模块用于处理正则表达式。

在本文中,我们将探讨如何使用正则表达式在Python中提取非数字字符。我们使用\D+正则表达式在Python中从字符串中获取非数字字符。

其中:

  • \D 返回不包含数字的匹配项。
  • + 表示零个或多个字符的出现。

使用findall()函数

在下面的示例中,让我们假设“2018Tutorials point”是一个字符串,我们需要消除其中的数字2018,并提取“Tutorials point”。

示例

在下面的示例代码中,我们使用findall()函数来使用正则表达式匹配Python中的任何非数字字符。我们首先导入正则表达式模块。

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 childrens 3 boys 2 girls”作为输入短语。输出应返回所有包含非数字的字符串。

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

更新于:2022年11月8日

5K+ 浏览量

启动您的职业生涯

完成课程获得认证

开始学习
广告