整数线的正则表达式反向匹配

时间:2017-02-21 12:31:27

标签: regex

我一直试图让它工作一个小时,但似乎无法在SO文章或Regex101.com的帮助下进行。

有一些数据,并希望返回不包含" / Common / http"的行。示例数据:

/Common/http and /Common/Another
/Common/http-mymon
/Common/another /Common/http
another line

我要找的结果是:

/Common/http-mymon
another line

我使用的任何正则表达式必须匹配整行,否则它在我使用的引擎中失败(https://github.com/jayway/JsonPath)。这意味着http不起作用,但.*http.*会起作用。

希望这是相当清楚的?

/帕特里克

2 个答案:

答案 0 :(得分:2)

您可以使用这样的负向前瞻性正则表达式:

^(?:.*?/Common/http-mymon|(?!.*/Common/http)).*$

RegEx Demo

<强>更新

根据以下评论,OP希望排除/Common/http后跟/或空格。在这种情况下尝试这个正则表达式:

^(?!.*/Common/http(?:/|\s)).*$

RegEx Demo 2

答案 1 :(得分:1)

我认为你可以使用以下正则表达式

^(?!.*\/Common\/http(?:\s))(.*?)$

这是使用否定前瞻/Common/http

在空格前检查前面没有(?!.*\/Common\/http(?:\s))