RegEx匹配具有特定字符串的分隔符之间的整个文本

时间:2015-11-10 04:02:13

标签: regex preg-match

我到处搜索过,无法找到类似的问题。

所以我想在其中包含特定文本的分隔符之间获取整个字符串。

示例:

我想在包含文字"

hotelscombined.com之间获取整个字符串

这是要搜索的字符串:
<a id="fake-id" href="http://hotelscombined.com?param=1&param=2&param=3">"Hello I'm a link"</a>

结果应为http://hotelscombined.com?param=1&param=2&param=3而不是Hello worldfake-id

这不仅限于HTML / XML属性。它可以在非HTML / XML元素上完成

示例:

要搜索的内容: Hello world I'm not an "html or xml" I could be "just random text"

要匹配的文字,任何包含random字并被引号"包围的内容

所以"just random text"匹配。

我在https://regex101.com/r/qI8bS4/1使用此正则表达式\".*?(hotelscombined\.com).*?\"进行了尝试但是它似乎很贪婪,并且会到达下一个引用"

1 个答案:

答案 0 :(得分:0)

感谢@Tushar的帮助。

我已经提出了这个解决方案"([^"]*?hotelscombined\.com[^"]*?)"

一般情况:模式就像这样DELIM([^DELIM]*?TEXT[^DELIM]*?)DELIM

其中:
DELIM = The delimiter
TEXT = The specific text you want enclosed

关键是使用[^DELIM]*?匹配除分隔符以外的所有字符,并使其进行惰性搜索。