如何检查文本中的特定短语是否与regex一起出现

如何检查文本中的特定短语是否与regex一起出现,regex,Regex,我想用正则表达式匹配字符串中的短语 范例 日志: 那只敏捷的棕色狐狸跳过了那只懒狗 某物 我想要一个正则表达式,它可以匹配ex.quickbrown,甚至更多的短语。所以我可以检查是否有匹配,如果有,做一些事情 我希望它给出一个匹配,如果所有给定的短语都存在,但不是如果我的日志中只有一个存在 例如,如果我想在上面的日志中搜索quick brown和,我希望它给出一个匹配 但是如果日志是 敏捷的棕色狐狸跳过了什么东西懒惰的狗,呜呜呜呜, 什么东西 因为它不能同时与quick brown和over

我想用正则表达式匹配字符串中的短语

范例

日志:

那只敏捷的棕色狐狸跳过了那只懒狗 某物

我想要一个正则表达式,它可以匹配ex.quickbrown,甚至更多的短语。所以我可以检查是否有匹配,如果有,做一些事情

我希望它给出一个匹配,如果所有给定的短语都存在,但不是如果我的日志中只有一个存在

例如,如果我想在上面的日志中搜索quick brown和,我希望它给出一个匹配

但是如果日志是

敏捷的棕色狐狸跳过了什么东西懒惰的狗,呜呜呜呜, 什么东西

因为它不能同时与quick brown和over the the over相匹配

如果日志显示

最敏捷的狐狸跳过了那只懒狗,什么的 某物

因为quickbrown和over在那里,但是quickbrown在东部标准时间结束,所以它也不应该匹配

我尝试了快速棕色,但这对我来说不太合适,因为如果其中一个单词不存在,我仍然会得到匹配


它必须是正则表达式,因为我使用的框架将正则表达式作为参数


我知道用一些代码可以实现同样的效果,但在我的例子中这不是一个选项。它必须是正则表达式。

在尝试了许多不同的方法之后,我找到了一个有效的解决方案

(\bquick brown\b).*(\bover the\b)
上面有一根火柴

那只敏捷的棕色狐狸跳过了那只懒狗 某物

但不是

敏捷的棕色狐狸跳过了什么东西懒惰的狗,呜呜呜呜, 什么东西

而不是

最敏捷的狐狸跳过了那只懒狗,什么的 某物

如果你不在乎短语的顺序,你可以用这个

(\bquick brown\b).*(\bover the\b)|(\bover the\b).*(\bquick brown\b)
表达式检查quick brown和over之间是否存在任何内容

你也可以

(\bquick brown\b).+?(\bover the\b)
如果quick brown和over the出现多次,则会出现多次匹配


在我的情况下,这没什么区别,但对其他人来说可能不需要正则表达式。一个简单的包含足够的检查。你可以循环浏览你的“短语”列表,如果有匹配项,做些什么。Gvie it a go,如果你被卡住了,带着你的代码回来。这个问题中应该匹配的内容发布得很糟糕,并且没有显示任何研究?它必须是regex,因为我使用的框架将regex表达式作为参数,所以。。。。如果必须是正则表达式,则正则表达式是快速棕色或超棕色。匹配一点文本并没有什么特别之处,但它必须能够匹配同时存在的短语。快布朗,快布朗,快布朗,快布朗,快布朗,快布朗,快布朗,快布朗,快布朗,快布朗,快布朗,快布朗,快布朗,快布朗,快布朗,快布朗,快布朗,快布朗,快布朗,快布朗,快布朗,快布朗,快布朗,快布朗,快布朗,快布朗?不管怎样,这不正是你想要的吗?这个解决方案有效吗?您也可以用于正则表达式测试。是的,这是我正在寻找的解决方案,我编辑了答案以澄清,我以前犯了一个错误-我使用