正则表达式中的分支条件匹配
来源:互联网 发布:红米note3知乎 编辑:程序博客网 时间:2024/05/16 05:55
分枝条件 |
不幸的是,刚才那个表达式也能匹配010)12345678或(022-87654321这样的“不正确”的格式。要解决这个问题,我们需要用到分枝条件。正则表达式里的分枝条件指的是有几种规则,如果满足其中任意一种规则都应该当成匹配,具体方法是用|把不同的规则分隔开。听不明白?没关系,看例子:
0/d{2}-/d{8}|0/d{3}-/d{7}这个表达式能匹配两种以连字号分隔的电话号码:一种是三位区号,8位本地号(如010-12345678),一种是4位区号,7位本地号(0376-2233445)。
/(0/d{2}/)[- ]?/d{8}|0/d{2}[- ]?/d{8}这个表达式匹配3位区号的电话号码,其中区号可以用小括号括起来,也可以不用,区号与本地号间可以用连字号或空格间隔,也可以没有间隔。你可以试试用分枝条件把这个表达式扩展成也支持4位区号的。
/d{5}-/d{4}|/d{5}这个表达式用于匹配美国的邮政编码。美国邮编的规则是5位数字,或者用连字号间隔的9位数字。之所以要给出这个例子是因为它能说明一个问题:使用分枝条件时,要注意各个条件的顺序。如果你把它改成/d{5}|/d{5}-/d{4}的话,那么就只会匹配5位的邮编(以及9位邮编的前5位)。原因是匹配分枝条件时,将会从左到右地测试每个条件,如果满足了某个分枝的话,就不会去再管其它的条件了。
- 正则表达式中的分支条件匹配
- 正则表达式-分支条件
- 正则表达式 分支条件
- 正则表达式(三)分支条件 分组
- 正则表达式-分支条件与分组
- 正则表达式中的字符匹配
- 正则表达式中的模糊匹配
- java中的正则表达式匹配
- 正则表达式中的特殊匹配
- 正则表达式笔记 4 分支条件 逻辑操作符 |
- 正则表达式笔记1 分支条件 逻辑操作符 |
- 正则表达式笔记 4 分支条件 逻辑操作符 |
- JavaScript中的模式匹配与正则表达式
- Python中的正则表达式匹配中文问题
- mysql中的模式匹配,利用正则表达式
- 正则表达式中的贪婪匹配(C#)
- Java 正则表达式中的懒惰匹配
- 匹配文本中的网址java正则表达式
- Win32汇编Second
- 学术论文
- 2010-01-16
- Snake Game——贪吃蛇
- 正则表达式中的反义
- 正则表达式中的分支条件匹配
- 2010-01-16
- ibatis:The content of element type "sqlMap" must match
- 对CURL的一些研究
- c++写dll
- 用 CSS 实现 Firefox 和 IE 都支持的 Alpha 透明效果
- NHibernate是什么?
- aii
- 单件模式_C++