C# 如何强制Regex.Replace与'/s';(将字符串视为单行)正则表达式修饰符
我正在使用正则表达式来获取HTML中两个字符串之间的字符串。在 工作如预期。但是在.NET中,它没有包装我想要的字符串。代码如下: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 = 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
是单行的。