C# 如何使用正则表达式获取数据

C# 如何使用正则表达式获取数据,c#,regex,C#,Regex,我有以下模式: private const string _usernamePattern = "Username: <strong>.*</strong>"; 因此,它适用于字符串类型: Username: <strong>MyUsername</strong> Username:MyUsername 但是我只需要抓取MyUsername,而不需要标签。 如何做到这一点?您不应该使用regex来实现这一点,而应该使用专用的html解

我有以下模式:

    private const string _usernamePattern = "Username: <strong>.*</strong>";
因此,它适用于字符串类型:

Username: <strong>MyUsername</strong>
Username:MyUsername
但是我只需要抓取
MyUsername
,而不需要
标签。
如何做到这一点?

您不应该使用regex来实现这一点,而应该使用专用的html解析器

看看这个问题,为什么

但是,如果这是一个非常有限的情况,而不是html的块,并且您只需要两个标记之间的文本,那么您可以使用以下模式

  • 零宽度正查找断言
  • 零宽度正向前瞻断言
(?试试:

private const string\u usernamePattern=“用户名:(?*)”;
...
私有字符串抓取(字符串文本、字符串模式)
{
var match=Regex.match(文本、模式);
如果(!match.Success)
抛出新异常();
其他的
返回match.Groups[“Email”].Value;
}
Username: <strong>MyUsername</strong>
(?<=<strong>).*?(?=</strong>)
private const string _usernamePattern = "Username: <strong>(?<Email>.*)</strong>";
...
private string Grab(string text, string pattern)
{
    var match = Regex.Match(text, pattern);

    if (!match.Success)
        throw new Exception();
    else
        return match.Groups["Email"].Value;
}