正则表达式入门
常见字符含义
[ABC]
:匹配目标字符串中[]
内的字符
import re
if __name__ == '__main__':
str = "abcdefghk"
reg1 = r'[abh]'
ans = re.findall(reg1, str)
print(ans) # ['a', 'b', 'h']
[^ABC]
:匹配目标字符串中除[]
之外的所有字符
import re
if __name__ == '__main__':
str = "abcdefghk"
reg1 = r'[^abh]'
ans = re.findall(reg1, str)
print(ans) # ['c', 'd', 'e', 'f', 'g', 'k']
[A-Z]
:匹配目标字符串中在[]
区间之内的所有字符
import re
if __name__ == '__main__':
str = "abcdefghk"
reg1 = r'[a-c]'
ans = re.findall(reg1, str)
print(ans) # ['a', 'b', 'c']
.
(等价于[^\n\r]
):匹配换行符(\n , \r )之外的任何字符
import re
if __name__ == '__main__':
str = "abcdefghk" \
"qwqweeq\n" \
"addsd\r"
reg1 = r'.'
ans = re.findall(reg1, str)
print(ans) # ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'k', 'q', 'w', 'q', 'w', 'e', 'e', 'q', 'a', 'd', 'd', 's', 'd', '\r']
\s
: 匹配所有空格
import re
if __name__ == '__main__':
str = "abcd ..sz。。ef gh k"
reg1 = r'\s'
ans = re.findall(reg1, str)
print(ans) # [' ', ' ', ' ', ' ', ' ', ' ']
\w
:等价于 [A-Za-z0-9_]
匹配所有数字、字母、下划线
import re
if __name__ == '__main__':
str = "abcd!!!A_==k"
reg1 = r'\w'
ans = re.findall(reg1, str)
print(ans) # ['a', 'b', 'c', 'd', 'A', '_', 'k']
$
:匹配输入字符的结束位置
import re
if __name__ == '__main__':
str = "abcd!!!A_==k1231"
reg1 = r'\d+$'
ans = re.findall(reg1, str)
print(ans) # ['1231']
()
:标记子表达式的开始和结束位置
*
:匹配前面表达式零次或多次
+
:匹配前边表达式一次或者多次
import re
if __name__ == '__main__':
str = "abcd!!!A_==k1231"
reg1 = r'\d*$'
ans = re.findall(reg1, str)
print(ans) # ['1231', '']
.
:匹配除换行符之外任意字符
import re
if __name__ == '__main__':
str = "aA-,.#"
reg1 = r'.'
ans = re.findall(reg1, str)
print(ans) # ['a', 'A', '-', ',', '.', '#']
[]
:[]表达式的开始和结束位置
?
匹配前边子表达式零次或一次
import re
if __name__ == '__main__':
str = "我在西安等你"
reg1 = r'.西安(等你)?'
ans = re.findall(reg1, str)
print(ans) # ['等你']
^
相当于集合取非
|
相当于取或
import re
if __name__ == '__main__':
str = "我在西安等你"
reg1 = r'.西安(等他|等你)?'
ans = re.findall(reg1, str)
print(ans) # ['等你']
{n}
匹配确定的n次
import re
if __name__ == '__main__':
str = "look"
reg1 = r'o{2}'
ans = re.findall(reg1, str)
print(ans) # ['oo']
{n,}
至少匹配n次,o{1}
等价于0+
, o*
等价于o*
{n,m}
:匹配n-m次