0

字符串:

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

4

1 回答 1

0

试试看:

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

catpure-group 1 是“变量名”, capture-group 2 是可选的(并且可能未设置)值。

于 2012-08-26T07:36:56.540 回答