一文秒懂Python正则表达式常用函数
正则表达式是一种强大的文本处理工具,可以用于各种本处理如数据清洗、文本分析、信息提取等。在Python中,我们使用re模块提供的函数来操作正则表达式。本攻略将详细讲解Python中正则表达式常用函数的使用,包括re.search()、re.match()re.findall()、re.sub()等。
re.search()
re.search()函数用于在字符串中搜索匹配正则表达式的一个位置,并返回一个匹配对象。如果匹配成功,则返回第一个匹配对象;如果匹配失败返回。下面是一个示例:
import re
text = 'The quick brown fox jumps over the lazy dog.'
result = re.search(r'fox', text)
print(result) # 输出结果为<re.Match object; span=(16, 19), match='fox'>
在上面的代码中,我们使用re函数搜索文本中的fox
,并返回一个匹配对象。运行代码后,输出结果为匹配对象的信息。
示例1:匹配文本中的所有数字
下面是一个例子,演示如何使用re.search匹配文本中的第一个数字:
import re
text = 'The answer is 42.'
result = re.search(r'\d+', text)
print(result.group()) # 输出结果为'42'
在上面的代码中,我们使用正则表达式\d+
匹配文本中的第一个数字。\d
表示匹配一个数字,+
表示匹配前面的字符一次或多次。运行代码后,输出结果为'42'
。
示例2:匹配文本中的所有单词
下面是另一个例子,演示如何使用re.search匹配文本中的第一个单词:
import re
text = 'The quick brown fox jumps over the lazy dog.'
result = re.search(r'\w+', text)
print(result.group()) # 输出结果为'The'
在上面的代码中,我们使用正则表达式\w+
匹配文本中的第一个单词。\w
表示匹配一个字母、数字或下划线,`+表示匹配前面的字符一次或多次。运行代码后,输出结果为文本中的第一个单词。
re.match()
re.match()函数用于从字符串的开头开始匹配正则表达式,并返回匹配对象。如果匹配成功,则第一个匹配对象;如果匹配失败,则返回None。下面是一个示例:
import re
text 'The quick brown fox jumps over the lazy dog.'
result = re.match(r'The', text)
print(result) # 输出结果为<re.Match object; span=(0, 3), match='The'>
在上面的代码中,我们使用re.match()函数从文本开头开始匹配The
,并返回一个匹配对象。运行代码后,输出结果为匹配对象的信息。
示例1:匹配文本中的所有数字
下面是一个例子,演如何使用re.match匹配文本中的第一个数字:
import re
text = 'The answer is 42.'
result = re.match(r'\w+\s\w+\s(\d+)', text)
print(result.group(1)) # 输出结果为'42'
在上面的代码中,我们使用正则表达式\w+\s\w+\s(\d+)
匹配文本中的第一个数字。\w
表示匹配一个字母、数字或下划线,\s
表示匹配一个空格,(\d+)
表示匹配一个或多个数字,并将其作为一个分组。运行代码后,输出结果为'42'
。
示例2:匹配文本中的所有单词
下面是另一个例子,演示如何使用re.match匹配文本中的第一个单词:
import re
text = 'The quick brown fox jumps over the lazy dog.'
result = re.match(r'(\w+)', text)
print(result.group()) # 输出结果为'The'
在上面的代码中,我们使用正则表达式(\w+)
匹配文本中的第一个单词,并将其作为一个分组。运行代码后,输出结果为文本中的第一个单词。
re.findall()
re.findall()函数用于搜索字符串中所有匹配正表达式的子串,并返回一个列表。下面是一个示例:
import re
text = 'The answer is 42.'
result = re.findall(r'\d+', text)
print(result) # 输出结果为['42']
在上面的代码,我们使用re.findall()函数搜索文本中的数字,并返回一个列表。运行代码后,输出结果为匹配到的数字。
示例1:匹配文本中的所有数字
下面是一个例子,演示如何使用re.findall匹配文本中的所有数字:
import re
text = 'The answer is 42.'
result = re.findall(r'\d+', text)
print(result) # 输出结果为['42']
在上面的代码中,我们使用正则表达式\d+
匹配文本中的所有数字。\d
表示匹配一个数字,+
表示匹配前面的字符一次或多次。运行代码后,输出结果为['42']
。
示例2:匹配文本中的所有单词
下面是另一个例子,示如何使用re.findall匹配文本中的所有单词:
import re
text = 'The quick brown fox jumps over the lazy dog.'
result = re.findall(r'\w+', text)
print(result) # 输出结果为['The', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', '', 'dog']
在上面的代码中,我们使用正则表达式\w+
匹配文本中的所有单词。\w
表示匹配一个字母、数字或下划线,`+表示匹配前面的字符一次或多次。运行代码后,输出结果为文本中的所有单词。
re.sub()
re.sub()函数用于将字符串中所有匹配正则表达式的子串替换为指定的字符串返回替换后的字符串。下面是一个示例:
import re
text = 'The answer is 42.'
result = re.sub(r'\d+', '100', text)
print(result) # 输出结果为'The answer is 100.'
在上面的代码中,我们使用re.sub()函数将文本中的数字替换100
,并返回替换后的字符串。运行代码后,输出结果为替换后的字符串。
示例1:替换文本中的所有数字
下面是一个例子,演示如何使用re.sub()函数将文本中的所有数字替换为指定的字符串:
import re
text = 'The answer is 42.'
result = re.sub(r'\d+', '100', text)
print(result) # 输出结果为'The answer is 100.'
在上面的代码中,我们使用正则表达式\d+
匹配文本中的所有数字,并将其替换为100
。运行代码后,输出结果为替换后的字符串。
示例2:替换文本中的所有单词
下面是另一个例子,演示如何使用re.sub()函数将文本中的所有单词替换为指定的字符串:
import re
text = 'The quick brown fox jumps over the lazy dog.'
result = re.sub(r'\w+', 'animal', text)
print(result) # 输出结果为'animal animal animal animal animal animal animal animal animal.'
在上面的代码中,我们使用正则表达式\w+
匹配文本中的所有单词,并将其替换为animal
。运行代码后,输出结果为替换后的字符串。
总结
本攻略详细讲解了Python中正则表达式常用函数的使用,包括re.search()、re.match()、re.findall()、re.sub()等。正则表达式是一种强大的文本处理工,熟练掌握正则表达式的用法可以大大提高我们的工作效率。除此之外,我们还演示了如何正则表达式搜索文本的数字,并将文本中的数字替换为指定的字符串。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一文秒懂python正则表达式常用函数 - Python技术站