正则表达式——多选结构

多选结构的形式是(...|...),在括号内以竖线 分隔开多个子表达式,这些子表达式也叫多表达分支(option); 在一个多选结构内,多选分支的数目没有限制。在匹配时,整个多选结构被视为单个元素,只要其中某个子表达式能够匹配,整个多选结构的匹配就成功;如果所有子表达式都不能匹配,则整个多选结构匹配失败。

回到身份证号码匹配的例子,既然可以区分15位和18位两种情况,就可以将毎种情况对应的表达式作为一个分支,使用多选结构([1-9]\d{14} | [1-9]\d{14}\d{2}[0-9x])。这个表达式的匹配如例3-9所示,它同样可以准确验证身份证号码。注  |  实际没有空格

没有括号的多选结构

ab|cd 等价于 (ab|cd)

多选结构的匹配顺序

print re.search(r"(jeffrey|jeff)", "jeffery").group(0)
jeffrey

print re.serch(r"(jeff|jeffery)", "jeffery").group(0)
jeff

php 与 python 匹配顺序一样

posted @ 2018-10-22 14:07  gaara724  阅读(2756)  评论(0编辑  收藏  举报