例如,这个正则表达式
(.*)<FooBar>
将匹配:
abcde<FooBar>
但我如何让它在多行之间匹配呢?
abcde
fghij<FooBar>
例如,这个正则表达式
(.*)<FooBar>
将匹配:
abcde<FooBar>
但我如何让它在多行之间匹配呢?
abcde
fghij<FooBar>
当前回答
使用RegexOptions.Singleline。它改变了…的意思。要包含换行符。
Regex.Replace(content, searchText, replaceText, RegexOptions.Singleline);
其他回答
在Ruby中,你可以使用'm'选项(多行):
/YOUR_REGEXP/m
有关更多信息,请参阅ruby-doc.org上的Regexp文档。
"."通常不匹配换行符。大多数正则表达式引擎允许您添加s标志(也称为DOTALL和SINGLELINE)来使“.”也匹配换行符。 如果失败了,你可以做一些类似[\S\ S]的事情。
选项1
一种方法是使用s标志(就像接受的答案一样):
/(.*)<FooBar>/s
演示1
选项2
第二种方法是使用m (multiline)标志和以下任何模式:
/([\s\S]*)<FooBar>/m
or
/([\d\D]*)<FooBar>/m
or
/([\w\W]*)<FooBar>/m
演示2
RegEx电路
jex。Im可视化正则表达式:
Use:
/(.*)<FooBar>/s
s使点(.)匹配回车符。
在基于java的正则表达式中,可以使用[\s\ s]。