C# 如何强制Regex.Replace与'/s';(将字符串视为单行)正则表达式修饰符

C# 如何强制Regex.Replace与'/s';(将字符串视为单行)正则表达式修饰符,c#,.net,regex,C#,.net,Regex,我正在使用正则表达式来获取HTML中两个字符串之间的字符串。在 工作如预期。但是在.NET中,它没有包装我想要的字符串。代码如下: html = Regex.Replace(html, @"(?<=<strong>CNPJ:)(.*?)(?=hddServidorCaptcha)\s*", string.Empty); html=Regex.Replace(html,@)(?不要将g(全局)修饰符与s(单线)aka(dotall)修饰符混淆 g(全局)修饰符表示所有匹配项(第

我正在使用正则表达式来获取HTML中两个字符串之间的字符串。在

工作如预期。但是在.NET中,它没有包装我想要的字符串。代码如下:

html = Regex.Replace(html, @"(?<=<strong>CNPJ:)(.*?)(?=hddServidorCaptcha)\s*", string.Empty);

html=Regex.Replace(html,@)(?不要将
g
(全局)修饰符与
s
(单线)aka(dotall)修饰符混淆

g
(全局)修饰符表示所有匹配项(第一次匹配时不返回)不存在,这就是为什么如果返回多个匹配结果,您会使用该方法

s
(dotall)修饰符允许点
跨越换行符序列。默认情况下,点
与换行符序列不匹配。您只需在此处使用内联修饰符即可:

@"(?s)(?<=<strong>CNPJ:)(.*?)(?=hddServidorCaptcha)"

  ^^^^
@”(?s)(?您可以使用相同方法的

html = Regex.Replace(html, @"(?<=<strong>CNPJ:)(.*?)(?=hddServidorCaptcha)\s*", string.Empty, RegexOptions.SingleLine);

html=Regex.Replace(html,@)(?您应该指定
/g
/s
的含义,以便了解.NET类型的人更容易回答。
/g
是全局的,
/s
是单行的。