如何用正则表达式替换字符串并保留其中部分任意内容
我们都知道可以用正则表达式,即regex,来进行字符串的匹配,替换。
但是如果我们想替换字符串中的一部分内容,但是要同时保留字符串中的另一部分内容,无论它是什么,该怎么做呢?
如在某文件中有如下内容:
defined($opt_ws_parser) defined($opt_client) defined($opt_server) ...
如何替换成:
$opt_ws_parser $opt_client $opt_server
也就是,把defined()去掉,但是保留()里的内容。
直接出答案:
/defined(\(\$.*\))/\1
其中,前面一个/ /中的正则表达式是原始字符串,这里面,
- defined( - 原始字符串
- \( -表示要组成一个group,前面需要有\来escape
- \$ -表示字符$,前面需要\来escape
- .*
正则表达式替换技巧:保留括号内内容

本文介绍了如何使用正则表达式替换字符串,同时保留()内的任意内容。例如,将'defined()'中的'defined()'替换掉,保留()内的内容。在vim和shell中提供了具体的替换命令示例。
订阅专栏 解锁全文
729

被折叠的 条评论
为什么被折叠?



