Regex Perl正则表达式中的多个条件

Regex Perl正则表达式中的多个条件,regex,perl,Regex,Perl,这是一个关于Perl正则表达式的非常具体的问题,我希望它不是不合适的 我有一个正则表达式,它与以下几个词中的一个匹配: /福|比萨|鸡/ 以及与5个或更多单词匹配的单词: ?:\w+?{5,} 我需要将这两者结合到一个单独的正则表达式中,这是一个实现限制。用一个正则表达式能做到这一点吗 我喜欢吃很多比萨饼。应该匹配 我喜欢在比萨饼上放鸡肉。应该匹配 我需要正则表达式的帮助。不应该匹配 我喜欢福。不应该匹配 提前谢谢 是的,您可以使用添加条件: /^(?=.*\b(?:foo|pizza|chic

这是一个关于Perl正则表达式的非常具体的问题,我希望它不是不合适的

我有一个正则表达式,它与以下几个词中的一个匹配:

/福|比萨|鸡/

以及与5个或更多单词匹配的单词:

?:\w+?{5,}

我需要将这两者结合到一个单独的正则表达式中,这是一个实现限制。用一个正则表达式能做到这一点吗

我喜欢吃很多比萨饼。应该匹配 我喜欢在比萨饼上放鸡肉。应该匹配 我需要正则表达式的帮助。不应该匹配 我喜欢福。不应该匹配 提前谢谢

是的,您可以使用添加条件:

/^(?=.*\b(?:foo|pizza|chicken)\b)(?:\b\w+\b ?){5,}/
测试一下

我添加了一个选项,以避免单词(如食物或比萨)不匹配,并确保\w+始终匹配整个单词

一种稍微高效的替代方法用于确保同样的事情:

/^(?=.*\b(?:foo|pizza|chicken)\b)(?:\w++ ?){5,}/
测试它。

是的,您可以使用添加条件:

/^(?=.*\b(?:foo|pizza|chicken)\b)(?:\b\w+\b ?){5,}/
测试一下

我添加了一个选项,以避免单词(如食物或比萨)不匹配,并确保\w+始终匹配整个单词

一种稍微高效的替代方法用于确保同样的事情:

/^(?=.*\b(?:foo|pizza|chicken)\b)(?:\w++ ?){5,}/

测试它。

您的第二个正则表达式与5个或更多单词不匹配,它与一个或多个字母数字字符(后跟可选空格)匹配5次。这意味着它匹配abcde,我猜这是你不想要的。你的第二个正则表达式不匹配5个或更多的单词,它匹配一个或多个字母数字字符,后跟一个可选空格,5次。这意味着它与abcde匹配,我猜你不想要。你以前的版本更好。@CasimiritHippolyte:我想知道什么会更好-我认为单词边界更明确,更容易理解,但我可能遗漏了一些东西……为什么你更喜欢带有所有格量词的版本?我发现它更直截了当、更短、更优雅。你应该把它加到你的答案里。太好了。谢谢@TimPietzcker!应该在那里。你以前的版本更好。@Casimimirethippolyte:我想知道什么会更好-我认为单词边界更明确更容易理解,但我可能遗漏了一些东西…为什么你更喜欢带有所有格量词的版本?我发现它更直截了当,更短,更优雅。你应该把它加到你的答案里。太好了。谢谢@TimPietzcker!应该在那里。