0

正規表現の助けが必要です。

PHPで使用されている次の正規表現があります。

$module_pattern = "/\[\[mod:(.*?):(.*?):(.*?):(.*?):(.*?)\]\]/i";

この正規表現をモジュール(mod :)に置き換え、この特定のモジュールを最初:(.*?)に、特定の関数を2番目に置き換える必要があります:(.*?)。関数にパラメーターを渡すことができるように、3番目、4番目、5番目を追加しようとしまし:(.*?)たが、上記の正規表現では、実際には3つのパラメーターを渡すことを前提としていますが、場合によっては1つまたは2つしか渡さないこともあります。

これを修正するにはどうすればよいですか?

ありがとう、

コブス

4

1 に答える 1

1

を使用して、新しいオプションのグループを作成できます(...)?。パラメータはになります(:(.*?))?。ネストされたグループを使用する理由は、コンテンツをキャプチャしたくないためです。?:そのため、外部グループにを追加して、それを無視することができます(?::(.*?))?

パターンは次のようになります。 /\[\[mod:(.*?):(.*?)(?::(.*?))?(?::(.*?))?(?::(.*?))?\]\]/i

于 2012-12-21T09:50:45.107 に答える