Regex.Match 无法正常工作

本文关键字:工作 常工作 Match Regex | 更新日期: 2023-09-27 18:36:43

我有一个字符串扩展名,定义完全是这样的:

public static string GetStringBetween(this string value, string start, string end)
{
    start = Regex.Escape(start);
    end = Regex.Escape(end);
    GroupCollection matches = Regex.Match(value, start + @"([^)]*)" + end).Groups;
    return matches[1].Value;
}

但是当我称之为:

string str = "The pre-inspection image A. Valderama (1).jpg of client Valderama is not...";
Console.WriteLine(str.GetStringBetween("pre-inspection image ", " of client"));

它不写任何东西。但是当 str 值是这样的:

string str = "The pre-inspection image A. Valderama.jpg of client Valderama is not...";

它工作正常。为什么会这样?

我的代码是C#,框架4,在VS2010 Pro中构建的。

请帮忙。提前谢谢。

Regex.Match 无法正常工作

因为您指定排除正则表达式捕获组中的字符)[^)] @"([^)]*)"

并且由于)出现在第一个字符串中:Valderama (1).jpg ,因此它将无法匹配。

您可能想要@"(.*)"