2012-03-11 114 views
0

例如,假設我有以下字符串如何使用正則表達式替換圓括號之間的內容?

「我們去(大)動物園」

我想匹配,更換括號之間的文本,也搭上了多餘的空格之一與

落得「我們去動物園」

什麼語法來做到這一點?我似乎無法完全理解

+0

那你試試? – 2012-03-11 21:36:14

+0

您使用哪種語言? – 2012-03-11 21:36:16

回答

3

您需要全局搜索\s*\([^)]\)\s*用一個空格替換每個出現的位置。具體的編碼方式取決於你使用的是什麼語言。

在Perl它看起來像

my $s = "we went to the (big) zoo"; 

$s =~ s/\s*\(.*?\)\s*/ /g; 

print $s; 

輸出

we went to the zoo 
1

您可以檢測括號(/\(.*?*\)/)並將其刪除。

哪些是您寫的語言?

+0

'[^)]'會比'。*?更有效率' – 2012-03-11 21:44:07

1

一般來說,正則表達式將是這個樣子:

/\((.*?)\)/ 

但作爲評論暗示,語言和應用程序可能會影響到這一點。

2

VIM你可以輸入命令:

%s/([[:alpha:]]*)\ //g 

這將做到這一切全局(g代表全局替換,就可以把1爲intance,它會每行做一次)。 如果您使用的是sed,那麼它是相似的。在這裏我想只有字符的字符串使用[[:alpha:]]

cat input.txt | sed s/([[:alpha:]]*)\ //g 

注:沿着線的東西。如果您使用.*,那麼它將適用於任何字符(包括數字,空格,不可打印的字符等)...

相關問題