如何用正则表达式替换字符串并保留其中部分任意内容
我们都知道可以用正则表达式,即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
- .*