2013-05-27 92 views
-1

在下面的文字:獲取文本與正則表達式使用C#的一部分

羣體定位由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」

回答

0

我只是想在gskinner,這裏是link

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

2

您可以從Author:匹配一個右括號:

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

注意,這個假設的作者姓名本身不包含右括號。這個假設是否有效取決於你的數據集。

(?<=foo)是一個積極的lookbehind,它不會消耗匹配中的任何字符,而是將匹配定位到foo先於其餘正則表達式的位置。所以在這種情況下,我們會在Author:之後立即開始匹配。 [^)]+是一個否定的字符類,它包含除結束括號外的每個字符。

+1

使用代碼「變種A = Regex.Match(「由IRS測試規則對政治(作者目標羣體: NICHOLAS CONFESSORE)「,@」(?<= Author:\ s +)[^)]「)。Groups [0] .Value;'結果只是字符「N」 –

+0

在末尾添加一個「+」。你現在實際上只匹配一個角色。 '(?<= Author:\ s +)[^)] +' – melwil

+0

Eep,對不起。我擔心,我經常犯這個錯誤。 – Joey

相關問題