在以下文本中:
美国国税局针对政治测试规则的目标群体(作者:NICHOLAS CONFESSORE)
我需要使用正则表达式获取作者的姓名。在这种情况下如何获得表达式?
我试试这个
Regex.Match("Groups Targeted by I.R.S. Tested Rules on Politics (Author: NICHOLAS CONFESSORE)", @"(?<=Author:\s+)[^)]").Groups[0].Value;
结果只有字符“N”
您可以匹配 fromAuthor:
到右括号:
(?<=Author:\s+)[^)]+
请注意,这假定作者姓名本身不包含右括号。该假设是否有效可能取决于您的数据集。
(?<=foo)
是一个积极的lookbehind,它不会消耗匹配中的任何字符,而是将匹配锚定到foo
正则表达式其余部分之前的位置。所以在这种情况下,我们将在 之后立即开始匹配Author:
。[^)]+
是一个否定字符类,包含除右括号之外的所有字符。
我刚试过gskinner
,这是链接
结果是:(?<=Author:\s)[^)]+