- \d 匹配数字
- \D (大写字母都是取非的意思)匹配非数字
- \s 匹配空白字符如\n\t\r
- \S 匹配非空白字符
- \w 匹配字母和数字
- \W 匹配非字母且非数字
- + 匹配一个或多个
- * 匹配0个或多个
- {n,m} 匹配n个到m个
- ? 匹配0个或1个
- . 匹配除回车之外的所有字符 re.search(r'.+','123vrfwer\nwer')
-
>>> re.search(r'.+','123vrfwer\nwer').group()
'123vrfwer'
-
添加re.S可以使得.匹配所有
-
>>> re.search(r'.+','123vrfwer\nwer',re.S).group()
'123vrfwer\nwer'
-
- 正则表达式是贪婪匹配,用?来抑制贪婪匹配
- 匹配大小写混写 [a-zA-Z] re.I
-
>>> re.search(r'ab','abd123',re.I).group()
'ab'
>>> re.search(r'ab','AB123',re.I).group()
'AB'
-
- ^ $开始和结尾匹配
-
>>> re.search(r'^\d+[a-z]+$','123abc').group()
'123abc'
-
- \b 单词边界 字符串的最前面和最后面,或者是前面有空白字符
-
>>> re.search(r'\bai\b','rain ai').group()
'ai'
-
- re.M将\n看作多行处理
-
>>> re.findall(r'\d+$','123\nasdf234\nasdf445asf',re.M)
['123', '234']
>>> re.findall(r'\d+$','123\nasdf234\nasdf234asf')
[]
-
- |或
-
>>> re.search('[ab|bc]','ab3234').group()
'a'
>>> re.search(r'ab|bc','ab3234').group()
'ab'
>>> re.search(r'ab|bc','bc3234').group()
'bc'
-
-
分组
-
>>> re.search(r'(\d+)abc','abd123abc').group(1)
'123'
>>> re.search(r'(\d+)(abc)','abd123abc').group(2)
'abc'
-
- 用正则提前手机号
-
>>> re.findall(r'(\d{11})\D','ab18513766556sdf151726533782d')
['18513766556', '51726533782']
>>> re.findall(r'\D(\d{11})\D','ab18513766556sdf151726533782d')
['18513766556']
-
- 匹配ip地址
-
>>> re.search(r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}','10.143.134.103').group()
'10.143.134.103'
-
- qwe
python 正则表达式
最新推荐文章于 2024-08-16 18:55:06 发布