2016-08-06 16 views
0

を使用してファイル内のメソッドとパラメータを見つけるpreg_match_allを使用してPHPファイルを検索しようとしています。例えば正規表現

ように私のメソッド呼び出しがあれば:私は配列にsome textnull、およびthird paramを取得したい

method("some text", null, "third param")

2番目と3番目に問題がある最初のパラメータを取得できました。

\(method)\([\'"](.*?[ \na-zA-Z0-9_-]+)[\'"]\im

https://regex101.com/r/dC8wV6/2

答えて

1

あなたが取得する,または,(?=(?:(?:[^'"]*['"]){2})*[^'"]*$)上でそれらを分割し、その後、グループ1内のパラメータをキャプチャする

method\s*\(((?:\s*(?:['"][^'"]*['"]|\w+)\s*(?:,|(?=\))))*) 

を試すことができます:私がしようと試み何

パラメータの配列

このパターンには文字列のコンマ(method(" , "))または引用符の不一致(" ' ")またはエスケープされた引用符(" \" ")が含まれています。これらの問題は修正される可能性がありますが、私は正規表現がそのまま十分長いと思います。