0

GAキーワードに対して2対1の正規表現一致を試みています

次のように言いたいのですが、オプションのプレフィックスまたはオプションのサフィックスのいずれか (または両方) が一致するために存在する必要があります – 「必要な中間」文字列、この場合は「people」とともに

したがって、これらの組み合わせのみが一致します。

people
happy people
happy people smile
happy people smile often
people smile
people smile often

これは一致しません:

happy people smile often in Connecticut

またはそれ以外のこと

私は先読みを使用したことがありません。一応これで解決(?)

他のソリューションがある場合は、それを受け入れる

繰り返しますが、誰かが正規表現のフレーバーを知る必要がある場合は、Google アナリティクスを使用しています

上記のリストは便利ですが、一部のクエリでは「人」だけでは一致せず、例の 2 ~ 6 行目だけが一致するようにする方法も知っておく必要があります

だから私は本当に2つの式が必要だと思います

4

1 に答える 1

1

これでうまくいくはずです。はすべてのバリアントで共通であるためpeople、これを明確な一致として使用します (そうしないと、何にでも一致することになり、何も一致しなくなります)。必須happyではありません。量指定子を追加して、?そこにあるかどうかを示します。また、グループ化括弧内にスペースを入れたことにも注意してください。Nextpeopleは常に必須で、その後にsmileorが続きsmile oftenます (適切なスペースを使用)。これらの異なるフレーズのそれぞれからメトリックが必要な場合は、異なるフィルターとして設定する必要があります。以下のコードは、リストしたすべての単語に対して true を返します。^行頭と行末に を使用して$いるので、長いフレーズ内のこれらの単語に対して true を返さないようにすることができます。

^(happy )?people( smile| smile often)?$

追加のリクエストに応じて、シンプルにするために、これorを完全にステートメントにすることができます. REGEX は左から右にチェックするため、速度を上げるためにこの方法で注文しました。存在しないスペースが検出された場合は、 の次のセクションに移動しorます。

^(people smile often|people smile|happy people smile often|happy people smile|happy people)$
于 2013-08-14T19:26:40.203 に答える