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 つの正規表現パターンを使用して #1 と #2 の両方の文字列を照合し、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 に答える