正则表达式匹配字符串或空

时间:2012-08-26 07:34:13

标签: php regex pattern-matching

字符串:

1. {@IF var=val}
2. {@IF var}

我目前的模式:

/{@if ([\w]+)(?:|=([\w]+))}/si

我需要的团体(2)

1. {@IF (var)=(val)}
2. {@IF (var)}

我已经使用此正则表达式完成了#2

/{@if ([\w]+)}/si

如何使用单个正则表达式模式匹配#1和#2字符串并生成一个/两个捕获组?

需要一个'g'修饰符。 但是我在php中添加了一个'g'修饰符之后就抛出了一个未知的修饰符错误

http://regexr.com?31uov

1 个答案:

答案 0 :(得分:0)

试试:

/@IF (\w+)(?:=(\w+))?/

capture-group 1是“变量名”,capture-group 2是可选的(可能没有设置)值。