正则表达式将分隔符之间的整个文本与特定字符串匹配

RegEx match entire text in between delimiters with a certain string

找遍了也没有找到类似的问题。

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

示例:

我想在 " 之间获取包含文本 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).*?\" 尝试过,但是它似乎很贪婪并且到达下一个引用 "

感谢@Tushar 的帮助。

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

为了一般性:模式是这样的DELIM([^DELIM]*?TEXT[^DELIM]*?)DELIM

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

关键是使用 [^DELIM]*? 来匹配除分隔符之外的所有字符并使其成为惰性搜索。