匹配数字字母下划线
1)匹配字母数字和下划线:
'[a-zA-Z0-9_]'
等价于'\w'
;
取非:'[^a-zA-Z0-9_]'
等价于'\W'
;
2) 匹配数字
'[0-9]'
等价与 '\d'
\d*
:表示任意个数字。
取非:'[^0-9]'
等价与 '\D'
匹配汉字
'[\u4e00-\u9fa5]'
匹配单个汉字,不含标点符号
'[\u4e00-\u9fa5]+'
匹配词语或以上汉字
取非:'[^\u4e00-\u9fa5]'
匹配非汉字
匹配邮箱
'(\w+@\w+\.\w+)+'
'(\S+@\S+\.\S+)+'
匹配电话
手机号:@"^(13[0-9]|15[0|3|6|7|8|9]|18[8|9])\d{8}$"
中国座机:'(\d{3,4}-\d{7,8})+'
匹配网址
http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
'(https://\S+\.\S+\.\S+)+'
'(http[s]?://(\w+\.){2}\w+)+'
匹配邮箱
'\d{6}'
'( \d{6} )+'
匹配身份证号码
'\d{17}[\d|X]|\d{15}'
'(\d{17}[\dX])+'
## 示例
import re
a = "a44444 500235189810081601 50023518981008160X https://www.baidu.com notff 023-81710110 http://www.baidu.com 444 404-81710110 +86-17378388114 4f0104 404500 0011 F40 893190391@qq.com 张三 99 深圳4\n"
# reg = re.compile('.') # . 匹配所有字符,不包括换行
# reg = re.compile('.+') # . 匹配所有,除了换行,多个字符一起返回
# reg = re.compile('[404]') # [abc]匹配a,b或c单个字符
# reg = re.compile('[^404]') # [^abc]匹配除a,b,c外的一切字符,包括换行,单个匹配返回
# + 匹配1个或多个的表达式。
# reg = re.compile('[104]+') # [abc]+ 匹配a,b,c,a+,ab+,abc+,acb+,bacc+等的单个或多个中括号内元素任意个数和任意位置组合的匹配
# reg = re.compile('[104]*') # * 匹配0个或多个的表达式,0个返回""
# reg = re.compile('\d+?') # ? 匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式。\d 匹配任意数字,等价于 [0-9].
# reg = re.compile('[\u4e00-\u9fa5]+')
# reg = re.compile('\d{2}') # 精确匹配 n 个前面表达式。
# reg = re.compile('\d{2,}') # 精确匹配 n 个或以上的前面表达式。
# reg = re.compile(r'\d{2,}f')
# reg = re.compile(r'\d{4,5}') # re{ n, m}--匹配 n 到 m 次由前面的正则表达式定义的片段,贪婪方式
# reg = re.compile(r'f{2}| 4+')# a| b 匹配a或b
# reg = re.compile(r'(f\d+)')# (re) 对正则表达式分组并记住匹配的文本
# reg = re.compile(r'(\w\d+)')# \w匹配字母数字及下划线
# reg = re.compile(r'(\W\d+)')# \W 匹配非字母数字及下划线
# reg = re.compile(r'(\w\s+)')# \s 匹配任意空白字符,等价于 [ \t\n\r\f]。
# reg = re.compile(r'(\w\S+)')# \S 匹配任意非空字符。
# reg = re.compile(r'(\D\S)')# \D 匹配任意非数字。
# reg = re.compile(r'(\A\w+)')# \A 匹配字符串开始。
# reg = re.compile(r'\w\b')# \b 匹配一个单词边界,也就是指单词和空格间的位置。
# reg = re.compile(r'\w+\b')# 匹配一个单词。
# reg = re.compile(r'\w\B')# \B 匹配非单词边界。
# reg = re.compile(r'\w\n')# \n, \t, 等. 匹配一个换行符。匹配一个制表符
# reg = re.compile(r'\w\n')# \B 匹配非单词边界。
# reg = re.compile(r'[a-zA-Z0-9_]+')# [a-zA-Z0-9_] 匹配任何字母及数字_
# reg = re.compile(r'(\w+@\w+\.\w+)+')
# reg = re.compile(r'(\S+@\S+\.\S+)+')
# reg = re.compile(r'(\d{3,4}-\d{7,8})+') # 匹配中国大陆固定电话 一个以上
# reg = re.compile(r'( \d{6} )+') # 匹配中国邮政编码 一个以上
# reg = re.compile(r'(\+86-1\d{10})+') # 匹配中国大陆手机号码 一个以上
# reg = re.compile(r'(https://\w+\.\w+\.\w+)+') # 匹配网址
# reg = re.compile(r'(https://\S+\.\S+\.\S+)+') # 匹配网址
# reg = re.compile(r'(http[s]?://(\w+\.){2}\w+)+') # 匹配网址
reg = re.compile(r'(\d{17}[\dX])+') # 匹配省份证号
result = reg.findall(a)
print(result)
# print("".join(result))
参考:
其他资料:
1、 re模块用法详解:涉及的函数的用法。
2、python正则表达式。
3、 python正则表达式操作:个元素含义。