仅在具有特定子字符串的字符串之间匹配引号之间的字符串

时间:2017-01-05 23:41:53

标签: regex notepad++

我有一个包含浏览器历史数据的文本文件,并希望使用notepad ++提取所有具有特定格式的URL字符串。具体来说,我想在子串

时提取引号之间的所有文本

www.linkedin.com/jobs/view

存在。所以,例如,如果我有行

"url": "https://www.linkedin.com/jobs/view/240035516?trkInfo\u003dsearchKeywordString%3AVolvo%2BGroup%2CsearchLocation"

我想匹配

https://www.linkedin.com/jobs/view/240035516?trkInfo\u003dsearchKeywordString%3AVolvo%2BGroup%2CsearchLocation

我想这样做是为了将所有这些URL提取到单独的文件中。

我从另一篇文章得到正则表达式

(["'])(?:(?=(\\?))\2.)*?\1

匹配双引号括起来的所有内容。但我对正则表达式一无所知,也不知道如何使上述表达式适应我的问题。我怎样才能改变它?

2 个答案:

答案 0 :(得分:1)

由于不需要支持转义引号,您可能依赖于基于否定字符类的更简单的正则表达式:

"[^"]*www\.linkedin\.com/jobs/view[^"]*"

请参阅regex demo

必须对点进行转义以匹配文字点,并且[^"]*否定的字符类)匹配除"以外的任何0+字符。

答案 1 :(得分:0)

要在Notepad ++中匹配类似"url": "Path to website"的行,您可以使用:

"url":\s*"\K[^"]*(?=")