【发布时间】:2026-02-11 16:35:01
【问题描述】:
我正在尝试在字符串中搜索单引号内的单词,但前提是这些单引号不在括号内。
示例字符串:
something, 'foo', something ('bar')
所以对于给定的示例,我想匹配foo,而不是bar。
搜索正则表达式示例后,我可以在单引号内进行匹配(参见下面的代码 sn-p),但不确定如何在前面描述的上下文中排除匹配项。
string line = "something, 'foo', something ('bar')";
Match name = Regex.Match(line, @"'([^']*)");
if (name.Success)
{
string matchedName = name.Groups[1].Value;
Console.WriteLine(matchedName);
}
【问题讨论】:
-
括号是否立即围绕单引号? IE。
(text 'foo' text)应该匹配“foo”吗? -
Regex101.com 是一个很棒的网站,用于测试正则表达式以确定它是否按您期望的方式运行。
-
@Woot:Regex101 不支持 .NET 正则表达式。测试 .NET 正则表达式,Ultrapico Expresso 工具非常好。
-
它们可能并不总是立即围绕单引号。例如,如果要搜索的字符串是 `('a','b','c'),我不想匹配 a、b 或 c。