.net 中的正则表达式似乎无法正常工作

Tea*_*mol 1 .net c# regex replace

我想用正则表达式从字符串中剥离 html,虽然这个正则表达式在任何地方都可以工作,但在 .net 中却不起作用,我不明白为什么。

using System;
                        
public class Program
{
    public static void Main()
    {
        var text = "FOO <span style=\"mso-bidi-font-size:11.0pt;\nmso-fareast-language:EN-US\"> BAR";
        var res = System.Text.RegularExpressions.Regex.Replace(text, "<.*?>", "");
        Console.WriteLine(res);
    }
}
Run Code Online (Sandbox Code Playgroud)

Joh*_*ica 5

您缺少正确的正则表达式选项:

var res = System.Text.RegularExpressions.Regex.Replace(text, "<.*?>", "", RegexOptions.Singleline);
Run Code Online (Sandbox Code Playgroud)

您需要这个的原因是您\n的 HTML 中有一个换行符 ( )。Singleline将确保.甚至匹配换行符。

文档简介:

指定单行模式。更改点 (.) 的含义,使其匹配每个字符(而不是除 \n 之外的每个字符)。有关详细信息,请参阅正则表达式选项一文中的“单行模式”部分。

文档

在线尝试一下