Python中正则表达式与模式匹配
正则表达式是一种用于匹配字符串的强大工具,可以在Python中用于解析HTML、XML等文本数据。本攻略将详细讲解中正则表达式的基本语法、常用函数和示例应用。
正则表达式基本语法
正则表达式普通字符和特殊字符组成的字符串,用于描述一类字符串的模式。下面是一些常用的正则表达式特字符- .
:匹配任意字符,除换行符。
– *
:匹配前面的字符零次或多次。
– +
:匹配前面的字符一次或多次。
– ?
:匹配前面的字符零次或一次。
– ^
:匹配字符串的开头。
– $
:匹配字符串的结尾。
– []
:匹配括号中的任意一个字符。
– ()
:将括号中的字符作为一个整体进行匹配。
– |
:匹配两个或多个正则表达式中的任意一个。
常用正则表达式函数
Python中常用的正则表达式函数包括:
re.search(pattern, string, flags=0)
:在字符串中搜索正则表达式的第一个匹配项。re.match(pattern, string, flags=0)
:在字符串的开头匹配正则表达式。re.findall(pattern, string, flags=0)
:在字符串中搜索正则表达式的所有匹配项。re.sub(pattern, repl, string, count=0, flags=0)
:在字符串中搜索正则表达式的所有匹配项,并将其换为指定的字符串。
示例说明
示例1:匹配字符串中的数字
下面是一个例子,演示如何使用正则表达式匹配字符串中的数字:
import re
text = ' price is $10.99.'
pattern = r'\d+'
result = re.findall(pattern, text)
if result:
print('Matches found:', result)
else:
print('Matches not found')
在上面的代码中,我们使用正则表达式\d+
匹配字符串中的数字。\d表示匹配一个数字字符,
+表示匹配一个或多个数字字符。
findall()函数可以返回所有匹配的结果。运行代码后,输出结果为
Matches found:10′, ’99’]`。
示例2:匹配HTML标签中的文本内容
下面是另一个例子,演示如何使用正则表达式匹配HTML标签中的文本内容:
import re
text = '<h1>Welcome to my website</h1>'
pattern = r'<.*?>(.*?)</.*?>'
result = re.search(pattern, text)
if result:
print('Match found:', result.group(1))
else:
print('Match not found')
在上面的代码中,我们使用正则表达式<.*?>(.*?)<!--.*?-->
匹配HTML标签中的文内容。<.*?>
表示匹配一个或多个任意字符,.*?
表示非贪婪匹配,()
表示将.*?
匹配到的字符串作为捕获组。search()
函数用于在字符串中搜索正则表达式的第一个匹配项。运行代码后,输出结果为Match: Welcome to my website
。
总结
本攻略详细讲解了Python中正则表达式的基本语法、常用函数和示应用。正则表达式是一种用于匹配字符串的强大工具,可以在Python中用于解析HTML、XML等文本数据。演示了如何使用正则表达式匹配字符串中的数字、匹配HTML标签中的文本。希望读者可以通过这些示例更好地理解正则表达式的应用。