美文网首页
python3中re正则表达式之我见

python3中re正则表达式之我见

作者: 兴化吴奇隆 | 来源:发表于2019-03-21 22:48 被阅读0次

什么是正则表达式?
答:是一种通用的小型语言,不仅是python中所独有,只是python中更全面。
正则表达式有什么用?
答:用来匹配啊,顾名思义,通过一定的规律对字符串进行匹配截取。
问:那么匹配用什么符号?
答:
. 匹配任意字符(不包括换行符)
$ 匹配结束位置,多行模式下匹配每一行的结束

  •                匹配前一个元字符0到多次
    
  •                匹配前一个元字符1到多次
    

? 匹配前一个元字符0到1次
{m,n} 匹配前一个元字符m到n次
\ 转义字符,跟在其后的字符将失去作为特殊元字符的含义,例如\.只能匹配.,不能再匹配任意字符
[] 字符集,一个字符的集合,可匹配其中任意一个字符
| 逻辑表达式 或 ,比如 a|b 代表可匹配 a 或者 b
问:还有什么特殊的?
答:其实只要记住关键的几个就行了,如\d,和\w 、\s 。
\b 匹配位于单词开始或结束位置的空字符串
\B 匹配不位于单词开始或结束位置的空字符串
\d 匹配一个数字, 相当于 [0-9]
\D 匹配非数字,相当于 [^0-9]
\s 匹配任意空白字符, 相当于 [ \t\n\r\f\v]
\S 匹配非空白字符,相当于 [^ \t\n\r\f\v]
\w 匹配数字、字母、下划线中任意一个字符, 相当于 [a-zA-Z0-9_]
\W 匹配非数字、字母、下划线中的任意字符,相当于 [^a-zA-Z0-9_]
问:请详细解释一下?
答:注意格式啊,如re,match(规则,字符串),如手机号码的匹配为例re.match("1[2-8]\d{9}",a) 1代表第一位是1,[2-8]代表第2位位2到8的数字,\d代表数字,{9}代表后面有9个数字,的符号代表结束匹配。那么就一共是11位的手机号码。
问:请问有没有拓展的?
答:有的,还有group方法以及findall\seartch等函数,还有分组。
问:有没有好的网址推荐?
答:https://www.bjsxt.com/down/9989.html
这个老师讲的不错,值得一听。
下面是具体的例子

import re
import sys
a=input("请输入手机号码")
b=re.match("1[2-8]\d{9}$",a)
try:
    print("您的手机号码是:"+b.group())
except:
    print("sorry,您输入的手机号码有误!")

相关文章

网友评论

      本文标题:python3中re正则表达式之我见

      本文链接:https://www.haomeiwen.com/subject/woghvqtx.html