资讯专栏INFORMATION COLUMN

正则表达式总结

go4it / 2521人阅读

摘要:量词首先匹配整个字符,如果失败则回退一个字符再次尝试。这个过程就叫做回溯。懒惰的量词是从目标的起始位置开始寻找匹配。每次检查字符串的一个字符,寻找他要匹配的内容。

工具

Regexpal是一个在线Javascript正则表达式处理器,地址是:http://www.regexpal.com

学习正则重要的是实践操作,不妨举个栗子:

匹配号码:707-827-7019

字符组匹配
[0-9][0-9][0-9]-[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]

d匹配任意阿拉伯数字
D匹配任何非阿拉伯数字
.匹配任意字符

ffffdDffffdDffffddD

ffffd.ffffd.ffffdd.

捕获分组与后向应用

用圆括号()创建分组,用1来对捕获分组内容进行向后引用

(d)d1   则匹配707

完整匹配号码:

^((d{3})|^d{3}[.-]?)?d{3}[.-]?d{4}$

^ 表示一行起始位置
( 表示捕获分组的起始符
( 表示左括号
d{3} 表示匹配三位数字
) 表示右括号
| 表示选择
[.-]? 匹配一个可选的点号或连字符
) 捕获分组的结束符
? 表示分组可选
$ 表示行结束为止

边界

匹配行或字符串起始位置使用脱字符 ^
匹配行或字符串末尾位置使用美元符 $

量词

量词默认是贪心的
贪心的量词会首先匹配整个字符串。尝试匹配时,他会选定尽可能多的内容,也就是整个输入。量词首先匹配整个字符,如果失败则回退一个字符再次尝试。这个过程就叫做 回溯。
懒惰的量词是从目标的起始位置开始寻找匹配。每次检查字符串的一个字符,寻找他要匹配的内容。最后,他会尝试匹配整个字符串。
占有量词会覆盖整个目标,然后尝试寻找匹配内容,但是他只尝试一次,不会回溯。
如使用 .* 匹配任何字符零次或多次

贪心量词

使用花括号{}可限制某个模式在某个范围内匹配的次数,另外,未经修饰的量词就是贪心量词
7{1,}与7+
7{0,}与7*
7?与7{0,1}
本质上则是一样
7{m,n} 则会匹配m到n次

懒惰量词

末尾加上?则使量词变懒惰
7?? 首先7?匹配零个或一个7,懒惰后不会匹配任何内容
7*? 匹配零个7
7+? 匹配一个7
7{m,n}? 匹配m个7

关于正则匹配html,xml标签,下次再写

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/37785.html

相关文章

  • 正则达式

    摘要:本文内容共正则表达式火拼系列正则表达式回溯法原理学习正则表达式,是需要懂点儿匹配原理的。正则表达式迷你书问世了让帮你生成和解析参数字符串最全正则表达式总结验证号手机号中文邮编身份证地址等是正则表达式的缩写,作用是对字符串执行模式匹配。 JS 的正则表达式 正则表达式 一种几乎可以在所有的程序设计语言里和所有的计算机平台上使用的文字处理工具。它可以用来查找特定的信息(搜索),也可以用来查...

    bang590 评论0 收藏0
  • JavaScript正则达式总结

    摘要:正则表达式一直是里比较难以掌握的点。在中创建正则的两种方式使用字面量这就是正则表达式的字面量语法,表示正则表达式的模式,为正则表达式的标志。字面量形式的正则表达式一般使用较多,也推荐大家尽可能使用这种形式,简洁易读,符合正常的使用习惯。 正则表达式一直是js里比较难以掌握的点。 看不懂,学不会,记不住。 每次需要用到正则的时候,都需要再去查找资料。 今天花时间把正则的知识点总结下,希望...

    big_cat 评论0 收藏0
  • 正则达式总结

    摘要:正则表达式总结知识点总结正则表达式正则表达式为什么需要正则表达式文本的复杂处理。学习正则表达式很大程度上就是学习表达式的语法规则。捕获元素编号为零的第一个捕获是由整个正则表达式模式匹配的文本。 正则表达式总结 @(Java知识点总结)[Java, 正则表达式] 正则表达式(regular expression) 为什么需要正则表达式? 文本的复杂处理 。 正则表达式的优势和用途? 一...

    stefan 评论0 收藏0
  • Nginx 学习总结(3)—— Location 模块

    摘要:改为后,显示出文件的大概大小,单位是或者或者默认为,显示的文件时间为时间。 这是 Nginx 学习总结的第三篇,上一篇介绍到了 Nginx 学习总结(2) —— 基本配置,这一篇会对Location 模块 做一些总结。我们知道,Location 模块 主要是用于针对某些特定的 URL 进行配置,可以由前缀字符串定义,也可以由正则表达式定义。 Location 匹配规则 location...

    biaoxiaoduan 评论0 收藏0
  • 正则达式难记点总结

    摘要:正则表达式匹配但是不是使用正则表达式的方法提供了不少使用正则表达式的方法。当正则表达式包含子表达式且不包含全局标志时,二者返回相同的数组。示例当正则表达式带有全局标志时,二者表现不一致。 一路以来遇到正则表达式的地方都是直接去百度的,因为感觉大部分遇到的正则表达式的地方都是很常见的。这次顺便总结下正则表达式比较难记的部分,方便自己日后查阅吧( ̄. ̄) 正则表达式中的特殊字符 感觉MDN...

    刘永祥 评论0 收藏0
  • javascript正则达式总结

    摘要:如果你知道正则表达式模式将会改变,或者你事先不知道什么模式,而是从另一个来源获取,如用户输入,这些情况都可以使用构造函数。 为什么要使用正则表达式 正则表达式通过由普通字符和特殊字符组成的文字模板完成对字符串的校验,搜索,替换。在javascript中类似这样 /^1d{10}$/ 上面的这个简单的正则用来匹配手机号至于说正则表达式到底有什么意义,借由《精通正则表达式》里面的一句话来概...

    impig33 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<