例如,这个正则表达式

(.*)<FooBar>

将匹配:

abcde<FooBar>

但我如何让它在多行之间匹配呢?

abcde
fghij<FooBar>

当前回答

我们也可以用

(.*?\n)*?

匹配所有内容,包括换行符,而不是贪心。

这将使新行成为可选的

(.*?|\n)*?

其他回答

使用RegexOptions.Singleline。它改变了…的意思。要包含换行符。

Regex.Replace(content, searchText, replaceText, RegexOptions.Singleline);

我们也可以用

(.*?\n)*?

匹配所有内容,包括换行符,而不是贪心。

这将使新行成为可选的

(.*?|\n)*?

在许多正则表达式方言中,/[\S\ S]*<Foobar>/将满足您的需要。源

这取决于语言,但应该有一个可以添加到正则表达式模式的修饰符。在PHP中是:

/(.*)<FooBar>/s

结尾的s使点匹配所有字符,包括换行符。

Use:

/(.*)<FooBar>/s

s使点(.)匹配回车符。