在C#中,我将以下字符串写入字符串变量,回车符和all:
asdfasdfasdf
asdfas<test>asdfasdf
asdfasdf<test>asdfasdf
Run Code Online (Sandbox Code Playgroud)
在Notepad2中,我使用这个正则表达式:
<test>.*<test>
Run Code Online (Sandbox Code Playgroud)
它按预期选择此文本:
<test>asdfasdf
asdfasdf<test>
Run Code Online (Sandbox Code Playgroud)
但是,当我在C#中执行此操作时:
System.Text.RegularExpressions.Regex.Replace(s, "<test>.*<test>", string.Empty);
Run Code Online (Sandbox Code Playgroud)
它不会删除字符串.但是,当我在没有任何回车符的字符串上运行此代码时,它确实有效.
所以我正在寻找的是一个匹配任何字符的正则表达式,无论它是否是控制代码或常规字符.
qJa*_*ake 54
您忘了指定正则表达式操作(特别是.
运算符)应匹配所有字符(不是除 \n 之外的所有字符):
System.Text.RegularExpressions.Regex.Replace(s, "<test>.*<test>", string.Empty, RegexOptions.Singleline);
Run Code Online (Sandbox Code Playgroud)
所有你需要添加的是RegexOptions.Singleline
.
Bli*_*ndy 11
使用单行模式:
Regex.Replace(s, "<test>.*<test>", "", RegexOptions.Singleline);
Run Code Online (Sandbox Code Playgroud)