我试图为GA关键字做一对二合一正则表达式匹配
想要说明以下内容:可选前缀或可选后缀中的一个(或两者)必须存在才能匹配 - 以及所需的中间'字符串,'人物'在这种情况下
所以只有这些组合才能匹配:
people
happy people
happy people smile
happy people smile often
people smile
people smile often
这不匹配:
happy people smile often in Connecticut
或其他任何事情
我从未使用过前瞻;我猜这可能是解决方案(?)
如果有任何
,请打开其他解决方案同样,如果有人需要了解正则表达式的风格,我会使用Google Analytics
虽然上面的列表非常有用,但我还需要知道如何做到这一点,以便" people"单独一些查询不匹配,但只有示例中的第2-6行。
所以我想我真的需要两个表达式
答案 0 :(得分:1)
这应该这样做。由于people
在所有变体中都很常见,因此我们将其用作明确的匹配(否则您最终会匹配任何内容而不是任何内容)。因此,happy
不是必需的,我们正在添加?
量词来说明它是否存在。另请注意,我在分组括号内包含了一个空格。始终需要下一个people
,然后是smile
或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)$