Python 中的正则表达式是通过 re
模块提供的,它支持大多数正则表达式的语法。以下是一些基本的正则表达式语法元素:
-
字符匹配:
.
匹配任意单个字符,除了换行符。\d
匹配任意数字,等同于[0-9]
。\D
匹配任意非数字字符,等同于[^0-9]
。\w
匹配任意字母、数字或下划线,等同于[a-zA-Z0-9_]
。\W
匹配任意非字母、数字或下划线字符。
-
字符类:
[abc]
匹配方括号内的任意一个字符。[a-z]
匹配任意小写字母。[^abc]
匹配除了方括号内的任意一个字符。
-
量词:
*
匹配前面的元素零次或多次。+
匹配前面的元素一次或多次。?
匹配前面的元素零次或一次。{m}
匹配确定的 m 次。{m,}
至少匹配 m 次。{m,n}
匹配从 m 到 n 次。
-
分组:
()
创建一个分组,可以捕获匹配的文本。
-
选择:
|
表示逻辑或,匹配两个表达式中的任意一个。
-
断言:
^
匹配字符串的开头。$
匹配字符串的结尾。\b
匹配单词边界。\B
匹配非单词边界。
-
特殊序列:
\s
匹配任何空白字符。\S
匹配任何非空白字符。\t
匹配制表符。\n
匹配换行符。
-
转义:
\
用于转义特殊字符或表示特殊序列。
-
贪婪与非贪婪:
- 默认情况下,量词是贪婪的,尽可能多地匹配字符。在量词后面加上
?
使其变为非贪婪,尽可能少地匹配字符。
- 默认情况下,量词是贪婪的,尽可能多地匹配字符。在量词后面加上
-
注释:
(?#comment)
正则表达式中的注释,Python 3.9 及以上版本支持。
使用 re
模块的基本步骤通常包括:
- 导入模块:
import re
- 编译正则表达式:
pattern = re.compile(r'正则表达式')
- 使用方法,如
match()
,search()
,findall()
,sub()
等。
例如,要匹配一个邮箱地址,可以使用以下正则表达式:
python
import re
email_pattern = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b'
emails = re.findall(email_pattern, 'Please contact us at support@example.com or sales@example.net.')
print(emails) # ['support@example.com', 'sales@example.net']
请注意,正则表达式可以非常强大,但也可能变得复杂和难以理解。始终确保测试你的正则表达式以确保它们按预期工作。