正则表达式中的元字符用于匹配特定的字符或字符集合。下面介绍一些常见的单字符匹配和字符集匹配。
一、单字符匹配
1.".":匹配任意一个字符(除了换行符)
import re
result = re.findall(r'he..o', 'hello world, hello python')
print(result) # ['hello', 'hello']
2."\d":匹配数字字符
import re
result = re.findall(r'\d+', '123abc456def789')
print(result) # ['123', '456', '789']
3."\w":匹配字母、数字、下划线
import re
result = re.findall(r'\w+', 'hello, world! 123')
print(result) # ['hello', 'world', '123']
4."\s":匹配空白字符(包括空格、制表符、换行符)
import re
result = re.findall(r'hello\s+world', 'hello \nworld, hello\tworld')
print(result) # ['hello \nworld', 'hello\tworld']
简写 | 描述 |
. | 除换行符外的所有字符 |
\w | 匹配所有字母数字,等同于 [a-zA-Z0-9_] |
\W | 匹配所有非字母数字,即符号,等同于: [^\w] |
\d | 匹配数字: [0-9] |
\D | 匹配非数字: [^\d] |
\s | 匹配所有空格字符,等同于: [\t\n\f\r\p{Z}] |
\S | 匹配所有非空格字符: [^\s] |
\f | 匹配一个换页符 |
\n | 匹配一个换行符 |
\r | 匹配一个回车符 |
\t | 匹配一个制表符 |
\v | 匹配一个垂直制表符 |
\p | 匹配 CR/LF(等同于 \r\n),用来匹配 DOS 行终止符 |
二、字符集匹配
1."[]":匹配方括号内的任意一个字符
import re
result = re.findall(r'[aeiou]', 'hello world')
print(result) # ['e', 'o', 'o']
2."[^]":匹配方括号内以外的任意一个字符
import re
result = re.findall(r'[^aeiou]', 'hello world')
print(result) # ['h', 'l', 'l', ' ', 'w', 'r', 'l', 'd']
3."[-]":匹配方括号内的字符范围
import re
result = re.findall(r'[a-z]', 'hello WORLD')
print(result) # ['h', 'e', 'l', 'l', 'o']
4."[$]":用来匹配字符是否是最后一个
import re
print(re.match('1[35-9]\d{9}$', '13955006789aa'))
以上是一些常见的单字符匹配和字符集匹配,需要注意的是,正则表达式的语法比较复杂,需要逐步学习和练习。