2012-03-11 73 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 

注:沿着线的东西。如果您使用.*,那么它将适用于任何字符(包括数字,空格,不可打印的字符等)...

相关问题