python中常用正则表达式

匹配数字字母下划线

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正则表达式操作:个元素含义。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柏常青

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值