2016-02-26 65 views
1

內卸下一切()我使用System.Text.RegularExpressions正則表達式:使用.NET

我有一個這樣的字符串:應用後

let foo = "XXX XXX (YYY YYY YYY)" 

我希望它是 「XXX XXX」正則表達式像這樣:

let bar = Regex.Replace(foo, pattern,"") 

我曾嘗試:

let pattern = @"\(\w*\)" 

let pattern = @"\(\*\)" 

有人可以給我一些指導? 感謝

+0

必須將它用正則表達式來實現?如果有更多的字符* *後括號應該發生什麼呢? –

回答

4

你需要躲避括號,因爲它們是用來捕捉羣體的特殊字符的正則表達式。

\(.*\)將匹配在其內部括號和一切。

正如埃裏克指出的那樣,如果你也想匹配的括號之前的空白,你應該使用\s*\(.*\)

+0

但我相信他還是會落得「XXX XXX」(多餘的空格)? –

1

您可以:

var foo = "XXX XXX (YYY YYY YYY)"; 
var pattern = @"\s*\([^\)]+\)"; 
string bar = Regex.Replace(foo, pattern, ""); 

正則表達式替換後,bar是:

「XXXX XXX」

相關問題