正则表达式——多选结构
多选结构的形式是(...|...),在括号内以竖线 | 分隔开多个子表达式,这些子表达式也叫多表达分支(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 匹配顺序一样