如何在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
广告