例如,假设我有以下字符串
“我们去了(大)动物园”
我想匹配并替换括号之间的文本,并且还要抓住一个额外的空格以结束
“我们去了动物园”
这样做的语法是什么?我似乎无法完全正确
答案 0 :(得分: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 :(得分:2)
在VIM
中,您可以输入命令:
%s/([[:alpha:]]*)\ //g
这将在全球范围内完成所有工作(g
代表全局替换,您可以将1
用于intance,并且每行只执行一次)。
如果您使用的是sed
,那么它就是相似的。有点像:
cat input.txt | sed s/([[:alpha:]]*)\ //g
请注意,这里我只使用[[:alpha:]]
作为字符串。如果您使用.*
,则它适用于任何字符(包括数字,空格,不可打印的字符等)......
答案 2 :(得分:1)
您可以检测括号(/\(.*?*\)/
)并将其删除。
你写的是哪种语言?
答案 3 :(得分:1)
通常,正则表达式看起来像这样:
/\((.*?)\)/
但正如评论所暗示的那样,语言和应用可能会影响这一点。