正则表达式替换字符串并保留其中部分任意内容(最新推荐)

 更新时间:2023年04月13日 14:36:17   作者:正义之兔  
我们都知道可以用正则表达式,即regex,来进行字符串的匹配,替换,今天小编给大家分享如何用正则表达式替换字符串并保留其中部分任意内容,感兴趣的朋友跟随小编一起看看吧

如何用正则表达式替换字符串并保留其中部分任意内容

我们都知道可以用正则表达式,即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
  • .*                        - .表示任意字符,*表示0或任意次重复
  • \)                        - 这里是group的右括号,前面需要有\来escape
  • )                         -原始字符串中的右括号

后面的\1是要替换成的字符串,这里表示为第一个group,也就是\(\$.*\)中的内容。

在Linux的vim里,在底部输入:

:%s/defined(\(\$.*\))/\1

这里%表示适用于文件每一行,s是substitute的意思。

在shell里,可以用如下sed命令:

sed -i 's/defined(\(\$.*\))/\1/g' filename

 这里最后一个g是表示替换所有符合前面正则规则的字符串。

补充:使用正则表达式替换(保留部分内容不变)

正则表达式保留部分内容替换

需求:

把trim(ABC)替换成trim(replace(ABC,char(9),'    ')

需要把ABC保留不变,替换其它的。

实现:

trim\(([^).]*)\)      替换成    trim\(replace\($1,char\(9\),'    '\)

在查找的时候用括号括起来的代表一部分,在替换的时候可以用$1,$2…引用。

在这里插入图片描述

简单例子

把前面三位数字替换成 =,保留其它不变。[0-9]{3} 表示三位数字,(.*) 表示其它,用括号括起便于后面替换时引用。

在这里插入图片描述

替换完结果是 ===yiersan 除了前面 123 后面的都被括号括起来了,而且后面用 $1 引用,所以保留不变。

注意:

有些编辑器选择使用正则表达式的时候有选择正则表达式的类型。这里是Perl

到此这篇关于如何用正则表达式替换字符串并保留其中部分任意内容的文章就介绍到这了,更多相关正则表达式替换字符串内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 正则表达式初运用之认证界面的实现代码

    正则表达式初运用之认证界面的实现代码

    这篇文章主要介绍了正则表达式初运用之认证界面的实现代码,代码简单易懂,非常不错,具有参考借鉴价值,感兴趣的朋友一起看看吧
    2016-09-09
  • 使用正则表达式实现网页爬虫的思路详解

    使用正则表达式实现网页爬虫的思路详解

    网页爬虫:就是一个程序用于在互联网中获取指定规则的数据。这篇文章主要介绍了使用正则表达式实现网页爬虫的思路详解,需要的朋友可以参考下
    2018-12-12
  • JavaScript  正则表达式备忘单实例代码

    JavaScript 正则表达式备忘单实例代码

    正则表达式或“regex”用于匹配字符串的各个部分,下面是我创建正则表达式的备忘单,需要的朋友可以参考下
    2019-04-04
  • JavaScript正则表达式(总结篇)

    JavaScript正则表达式(总结篇)

    本文是小编参考其他有关js正则表达式资料整理的,主要目的有两个:一:自我复习归纳总结。二:共享方便大家搜索 。js正则表达式感兴趣的朋友可以一起学习
    2016-03-03
  • 解决正则表达式\w和\d的疑惑

    解决正则表达式\w和\d的疑惑

    在本篇文章里我们给大家分享了关于正则表达式\w和\d的疑惑相关知识点,有需要的朋友们学习下。
    2019-01-01
  • 超全的js正则表达式整理笔记

    超全的js正则表达式整理笔记

    这篇文章为大家分享了一篇超全的javascript正则表达式整理笔记,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • 正则表达式之字符串模式匹配实例详解

    正则表达式之字符串模式匹配实例详解

    正则表达式就是一种强大而灵活的文本处理工具,正则可以很好的解决这类字符串校验问题,下面这篇文章主要给大家介绍了关于正则表达式之字符串模式匹配的相关资料,需要的朋友可以参考下
    2022-04-04
  • 正则表达式 \D 元字符(等价于

    正则表达式 \D 元字符(等价于"[^0-9]")

    \D元字符可以匹配非数字字符,等价于"[^0-9]"。这篇文章主要介绍了正则表达式 \D 元字符的相关资料,需要的朋友可以参考下
    2018-01-01
  • AS3 js正则表达式 反向引用(backreference)

    AS3 js正则表达式 反向引用(backreference)

    这篇文章主要介绍了AS3 js正则表达式 反向引用(backreference) 的相关资料,需要的朋友可以参考下
    2016-03-03
  • js正则表达式常用函数详解(续)

    js正则表达式常用函数详解(续)

    之前一篇已经带领大家认识了一下正则表达式常用函数最基本的功能及使用方法。本文再带领大家一起应用正则表达式,深入学习正则表达式中常用的方法及对象,例如:test、exec、match、replace、search等等,需要的朋友可以参考下
    2015-12-12

最新评论