我正在尝试查找包含单词“text1”和“text2”的所有页面。
我的正则表达式:

text1(.|\n)*text2

它不起作用..

最佳答案

如果您的IDE支持s(单行)标志(因此.字符可以匹配换行符),则可以使用以下命令搜索项:

(text1).*(text2)|\2.*\1

Example with s flag

如果IDE不支持s标志,则需要使用[\s\S]代替.:
(text1)[\s\S]*(text2)|\2[\s\S]*\1

Example with [\s\S]

有些语言使用$1$2代替\1\2,因此您可能需要更改它们。

编辑:

另外,如果您只想匹配一个文件包含两个字符串(但实际上不选择任何内容),则可以使用超前查找:
(?s)^(?=.*?text1)(?=.*?text2)

这与参数的顺序(或编号)无关,对于您要搜索的每个其他文本,您只需附加另一个(?=.*?text_here)即可。这种方法很好,因为您甚至可以包含正则表达式,而不仅仅是纯字符串。

关于regex - 正则表达式在页面上找到两个单词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26890991/

10-11 03:52