二重引用符で囲まれていない、関数である可能性のある単語に一致する PHP 正規表現に取り組もうとしています。関数である可能性がある二重引用符で囲まれているものはすべて無視します。以下はすでに「hello(world)」に一致しています。そして、'hello(world)' を 1 つの配列に配置し、次に 'hello' を別の配列に配置します。ただし、上記のように追加しない条件が欲しいです。
preg_match_all('#(\w*)\s*\(.*?\)#i',$str,$m);
私はそれで遊んでみました。そして、次の例を使用して私を助けてください。
(?<!a)b
適用するとパターンが間違っていますが。誰かがこの問題について何か助けがあれば、私はそれを感謝します.
正規表現の現在の設計の出力として。次の例を見てください。
入力:
one($two) two($1) three($2one)}meme1(you2) this(that) die ("今") these function myfunc($me) empty()
出力:
array (
0 =>
array (
0 => 'one($two)',
1 => 'two($1)',
2 => 'three($2one)',
3 => 'meme1(you2)',
4 => 'this(that)',
5 => 'die (\\"meohmy\\")',
6 => 'myfunc($me)',
7 => 'empty()',
),
1 =>
array (
0 => 'one',
1 => 'two',
2 => 'three',
3 => 'meme1',
4 => 'this',
5 => 'die',
6 => 'myfunc',
7 => 'empty',
),
)