如果匹配条件,则RegEx匹配句子中的某些字符串

时间:2014-11-17 10:30:46

标签: regex

只有当NEED TO MATCH THIS TEXT这个词出现时,我才需要匹配句子This_Criteria 例如,下面的行包含单词This_Criteria,因此正则表达式的结果应为:NEED TO MATCH THIS TEXT

<182>Nov 16 15:38:10 172.27.27.224 This_Criteria,Jun 29 03:26:33 trm92 sshd[1033]: NEED TO MATCH THIS TEXT

无论句子包含什么,如何实现?

所以在伪:

如果This_Criteria = true,请忽略This_Criteria中的所有内容,并将其与之后的内容相匹配

希望我已经正确地解释了自己!

2 个答案:

答案 0 :(得分:0)

简单。 只需为此运行正常的正则表达式,但在其开头包含This_Criteria。如果找不到This_Criteria,则无法匹配。

但是,如果你要求人们为你做正则表达式...

根据你想要文本的具体程度,这样的事情应该可以解决问题: /This_Criteria.*\[[0-9]+\]:(.*)/

这将匹配最终[1033]:(任何数字)之后的所有内容,仅在This_Criteria存在时才会匹配。 这是一个非常简单的正则表达式,如果你想更具体一点,你将不得不编辑它。

答案 1 :(得分:0)

您可以使用此正则表达式:

This_Criteria.*?\[1033\]: *([^:]+)$

RegEx Demo

并从匹配中抓取被捕获的组#1。