C#正则表达式匹配任何字符?

osc*_*tin 33 c# regex

在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)