【发布时间】:2016-01-05 21:33:17
【问题描述】:
我试图在 New : 双引号中获取值。 当 ListName 中没有空格时,我可以很好地检索该值。但是,如果我在列表名称之间放置空格(例如 NewFinancial History:\"xyz\"),则会引发以下错误:
解析 "NewFinancial History:"(?[^"]*)"" - 组名无效:组名必须以单词字符开头。
它在下面一行抛出错误 var matches = Regex.Matches(contents, regex, RegexOptions.Singleline);
下面是我的代码。
string contents = " testing NewFinancial History:\"xyz\" ";
var keys = Regex.Matches(contents, @"New(.+?):", RegexOptions.Singleline | RegexOptions.IgnorePatternWhitespace).OfType<Match>().Select(m => m.Groups[0].Value.Trim().Replace(":", "")).Distinct().ToArray();
foreach (string key in keys)
{
List<string> valueList = new List<string>();
string listNameKey = key;
string regex = "" + listNameKey + ":" + "\"(?<" + listNameKey + ">[^\"]*)\"";
var matches = Regex.Matches(contents, regex, RegexOptions.Singleline);
foreach (Match match in matches)
{
if (match.Success)
{
string value = match.Groups[key].Value;
valueList.Add(value);
}
}
}
【问题讨论】:
-
不确定您在问什么 - stackoverflow.com/questions/122951/… 中解释了错误(您现在应该已经找到/阅读了),那么您究竟需要什么帮助?