/ 2つの文字列の間の/ pregの一致 - php、regex

2つの文字列の間のpregの一致 - php、regex

私はこのpregの試合に手助けが必要です。私は他の投稿からこれを試しましたが、結果が得られませんでした。最後に投稿しましょう。

抽出しようとしています z,a,b 最初から a 2番目の例から。

1)パラメータで関数操作を書く z、a、b そしてbを返します。

2)パラメータを使って階乗関数を書く a.

これが私がこれまでに試したことです。

 preg_match_all("/parameter(.*?)and?/", $question, $match);
$questionVars = $match[1];
print $questionVars;

どうもありがとうございます!

回答:

回答№1は1

実際の要件に応じて、解決策は異なります。

後に文字列が必要な場合 parameter あなたが使用することができる単語とコンマの文字で構成することができます全体の単語として

preg_match("~bparameters+Kw+(?:s*,s*w+)*~", $s, $m)

を参照してください 正規表現のデモ。ザ bparameters+ 単語の境界に一致 parameter そして1 +空白文字、そしてこのテキストはすべての助けを借りて省略されます K一致リセット演算子。 w+(?:s*,s*w+)* 1+の単語charsと、それに続くオプションの空白のcharsと1+の単語charsで囲まれたコンマの0+の繰り返しを照合して返します。

これらのカンマ区切りの塊を別々に取得する予定の場合は、

preg_match_all("~(?:G(?!^)s*,s*|bparameters+)Kw+~", $s, $m)

見る 別の正規表現のデモ。ここに、 (?:G(?!^),s*|bparameters+) 単語全体に一致する parameter (の後に1+の空白を入れるbparameters+前の解決方法のように、または前の成功したマッチの終わりで , オプションの空白文字で囲みます(G(?!^)s*,s*)。ザ K これまでにマッチしたテキストを省略します w+ 値をつかみます。に置き換えることができます [^,]* コンマ以外の0文字を取得する。