問題に頭を悩ませていますが、適切な解決策が見つかりません。問題: テキスト内の異なる文字または単語のすべての出現に一致する正規表現を記述します。テキストの順序は、次のようになります。
pl プレーヤーをプレイ
私はもう試した
(pl|プレイ|プレーヤー)
しかし、何らかの理由ですべての単語で pl のみが選択されます。その理由を知っている人はいますか?また、正規表現のみを使用してこれを行うことは可能ですか?
リンク先正規表現101
どのような助けでもいただければ幸いです。
答え1
代替案を探す際、共通文字が含まれているか、共通文字で始まる場合は、最長の単語から最短の単語の順に探します。、、pl
およびplay
はplayer
すべて で始まるためpl
、(最初の代替案として) のみがpl
一致します。play
およびplayer
は考慮されません。
正規表現は次のようになります: (player|play|pl)
。
この場合、最初に単語がテスト/比較されplayer
、見つからなかったplay
場合はがテスト/比較され、最後に他の 2 つの単語が見つからなかった場合は がテスト/比較されます。player
pl
答え2
貪欲な一致を指定する必要があるので、.*
次のように正規表現の最後に追加します。
(pl|play|player).*
貪欲な一致を使用する場合は、必要以上に一致してしまう可能性があるため、注意が必要です。