美文网首页
研究正则匹配

研究正则匹配

作者: Chreyl_1d33 | 来源:发表于2018-09-06 15:55 被阅读0次

【题外话】
一直没太明白python正则替换怎么用的,每次现用都疯狂百度。。这次下决心要研究下~

基本规则:
*表示任意个字符(包括0个)
+表示至少1个字符
?表示0个或1个字符
{n}表示n个字符,{n,m}表示n-m个字符

. - 匹配1个非换行符的任意字符
\d - 匹配1个数字,等价 [0-9] \D取反
\s - 匹配任何1个空白字符,等价 [ \f\n\r\t\v] \S取反
\w - 匹配字母、数字、下划线,等价[A-Za-z0-9_] \W取反
^ - 匹配开头
$ - 匹配结尾

eg1:匹配'010-12345'这样的号码?
由于'-'是特殊字符,在正则表达式中,要用''转义,所以,上面的正则是\d{3}-\d{3,8}

懒惰匹配&贪婪匹配:
懒惰匹配:尽可能短的匹配 .*?一般用于懒惰匹配
贪婪匹配:尽可能长的匹配,正则匹配默认是贪婪匹配

思考1:验证邮箱的正则表达? xx@xx.com
规则:
1.@之前必须有内容且只能是字母(大小写)、数字、下划线(_)、减号(-)、点(.)
2.@和最后一个点(.)之间必须有内容且只能是字母(大小写)、数字、点(.)、减号(-),且两个点不能挨着
3.最后一个点(.)之后必须有内容且内容只能是字母(大小写)、数字且长度为大于等于2个字节,小于等于6个字节
答案: ^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(.[a-zA-Z0-9-]+)*.[a-zA-Z0-9]{2,6}$

python的正则匹配模块re--常用函数:
re.compile() --编译正则表达式模式,返回一个对象的模式;
re.match() --只匹配字符串的开始,若字符串开始不符合,则匹配失败,返回None;
re.findall() --匹配整个字符串,返回所有符合匹配的子串的集合;
re.sub()
re.subn()
re.search() --匹配整个字符串,直到找到一个匹配;
re.finditer()
re.split()

相关文章

  • 研究正则匹配

    【题外话】一直没太明白python正则替换怎么用的,每次现用都疯狂百度。。这次下决心要研究下~ 基本规则:*表示任...

  • 正则匹配库

    正则匹配用户名: 正则匹配用户名: 正则匹配手机号或者固定电话: 匹配中文: 正则匹配用户密码: 正则匹配电子邮箱...

  • Nginx location的正则匹配

    Nginx location的正则匹配 Nginx正则匹配的匹配规则

  • 正则表达式

    在线正则表达试测试链接 正则表达式测试链接网址 正则匹配 结果为 匹配目标分组匹配 结果为 贪婪模式匹配 .*匹配...

  • 正则判断中文汉字

    正则匹配(全是中文汉字) 正则匹配(含有中文汉字)

  • 正则表达式回溯法原理

    来源:正则表达式回溯法原理作者:老姚(转载已获得作者授权) 学习正则表达式,是需要懂点儿匹配原理的。而研究匹配原理...

  • 《javaScript正则表达式迷你书》(一)

    正则表达式字符匹配攻略 正则表达式是匹配模式,要么匹配字符,要么匹配位置。 两种模糊匹配 如果正则只有精确匹配是没...

  • java正则使用

    正则切割 正则捕获 正则完全匹配

  • nginx配置备忘

    1. location匹配 1.1. location类型 location主要分为普通匹配和正则匹配: 1 正则...

  • Nginx if location 指令部分应用场景使用说明

    location 指令 只有正则匹配( ~ 和 ~* )才能使用正则子串 前缀匹配(^~ )不能识别正则表达式 ,...

网友评论

      本文标题:研究正则匹配

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