2018-01-03正则表达式高级用法——嵌入条件

正则表达式嵌入了条件,就是执行了一定的逻辑。
如果不使用嵌入条件,我们也可以使用或者|元字符来列举解决

条件语句,就是分支结构,列举可以实现。

已经知道的条件

?匹配前面的一个字符或者表达式,如果存在的话……可以存在,也可以不存在,匹配{0,1}
?= 向前查找,如果后面符合的话......
?<= 向后查找,如果前面符合的话.....

判断回溯引用是否存在的条件逻辑

(<[aA])>.+(?(1)\s*</[aA]>)

注意这个格式(?(1)AAA) 表示引用1如果存在,就继续匹配AAA。
引用1特指前面的()中的子表达式是否存在

如果不存在也可以匹配
(?(1)AAAA|BBB)
如美国号码的匹配模式
123-456-7890
(123)456-7890
只有这两种的数据格式才是正确的
(()?(\d{3})(?(1))|-)(\d{3}-\d{4}) 这个测试没有通过

前后查找条件判断

判断向前,向后有无这个文本
如美国的邮政编码
11111
22222-6666
可以写
\d{5}(-\d{4})?
也可以写
\d{5}(?(?=-)-\d{4}) 这个测试没有通过
嵌入前后查找的条件的模式很少见,忽略吧

所谓的嵌入条件,就是:只有但条件得到或者没有得到时,对应表达式才会被匹配。

关于JS中的正则,请参考本人收录的专题文章!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 正则表达式必知必会 匹配单个字符 匹配纯文本 相当于文本查找的功能(CMD + F)。但是一般的正则表达式引擎默认...
    三十一_iOS阅读 1,098评论 0 1
  • 正则表达式到底是什么东西?字符是计算机软件处理文字时最基本的单位,可能是字母,数字,标点符号,空格,换行符,汉字等...
    狮子挽歌阅读 2,178评论 0 9
  • tags: 正则表达式categories: JavaScript欢迎点击我的博客原文 前端会遇到很多字符串验证问...
    浅茉Sara阅读 798评论 1 2
  • 注:本篇文章只为方便查看,特此保留,如有冒犯,敬请谅解!!! 本文目标 30分钟内让你明白正则表达式是什么,并对它...
    阿杰Alex阅读 1,508评论 0 10
  • 推荐几个正则表达式编辑器 Debuggex :https://www.debuggex.com/ PyRegex:...
    木易林1阅读 11,562评论 9 151