使用c#使用正则表达式获取部分文本

时间:2013-05-27 12:04:27

标签: c# regex

在以下文字中:

  

以I.R.S.为目标的团体经过测试的政治规则(作者:NICHOLAS CONFESSORE)

我需要使用正则表达式来获取作者的名字。在这种情况下如何获得表达式?

我试试这个

Regex.Match("Groups Targeted by I.R.S. Tested Rules on Politics (Author: NICHOLAS CONFESSORE)", @"(?<=Author:\s+)[^)]").Groups[0].Value;

结果只有字符“N”

2 个答案:

答案 0 :(得分:2)

您可以从Author:匹配到右括号:

(?<=Author:\s+)[^)]+

请注意,这假定作者姓名本身不包含右括号。该假设是否有效取决于您的数据集。

(?<=foo)是一个积极的lookbehind,它不会消耗匹配中的任何字符,而是将匹配锚定到foo先于正则表达式其余部分的点。所以在这种情况下,我们将在Author:之后立即开始匹配。 [^)]+是一个否定的字符类,包含每个字符,但是右括号。

答案 1 :(得分:0)

我刚试过gskinner,这里是link

结果是:(?<=Author:\s)[^)]+