2012-08-26 95 views
0

的字符串:正則表達式匹配字符串或空

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

我現在的模式:我需要(2)

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

我已經做了#2

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

組使用這個正則表達式

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

如何使用單個正則表達式匹配#1和#2字符串並生成一個/兩個捕獲組?

需要'g'修飾符。 但經過我在PHP加入g修飾符它拋出未知改性劑錯誤

http://regexr.com?31uov

回答

0

嘗試:

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

catpure組1是 「變量名」,捕獲 - 組2是可選的(可能未設置)。