正则表达式我怎么写这个模式?

时间:2014-01-25 18:56:51

标签: php regex regex-group

$string = "anyWord Hello A 1 *** .";
preg_match('/(.*?) Hello (A|B) (1|0) (if(g2 == B)then|else).*/i',$string,$match);
//             g1          g2    g3   -->|            
print_r($match);

我做了什么?

1 个答案:

答案 0 :(得分:0)

试试这个:

preg_match("/(.*?) Hello ([AB]) (?|(0)|(1) (\*\*\*))/i",$string,$match);

(?|...|...)结构允许交替中的子模式彼此独立编号。否则,您最终会将匹配3设为0或不匹配,并将4/5设为1/***或不匹配。结构将它们组合在一起,以使匹配301,并匹配4为空或***