如何使用正则表达式保留部分内容的替换功能

 更新时间:2023年03月16日 09:25:10   作者:远方在何处  
其实工作中一直在用到正则表达式,只是用来替换的操作显然没有那么多,今天偶然遇到,还是有点陌生的,这里记录一下,下面这篇文章主要给大家介绍了关于如何使用正则表达式保留部分内容的替换功能,需要的朋友可以参考下

使用正则表达式实现保留部分内容的替换

可惜没有如果,去替换时间对心的冷漠。

什么是真的念念不忘,不过就是旧情被替换了而已。

而夜幕,却依旧如期降临,深冬的风替换曾经的烟花三月,举目四望,偌大的桌边只我一人,空对,一盏冰冷的茶。

对于查找替换大家可能都不陌生,基本上所有的编辑器都有这样的功能。但是普通的查找替换肯定不能满足用户对于泛化查找的需求。于是有了基于正则表达式的查找替换。对于正则表达式的规则这里不再说明,如果不太清楚可以自行百度。

保留一处内容

大家可以看这样一个例子:如下图,如果我想将所有的"第n章"替换为"第n节",那么如何替换?直接将"章"替换为"节",为了避免其他的"章"被替换掉,通常情况下我们需要一个一个进行替换。如何避免这种情况呢?

我们可以将"第n章"替换为"第n节",但问题是n是变化的,所以替换时会用到正则表达式。例如正则表达式"第[0-9]+章"匹配的是我们想要替换的,但是替换的内容是固定的,也就是说,中间的数字在替换时没办法保留。那么如何做到保留部分内容的替换呢?

这就需要在正则表达式中进行改进了。为了保留某部分,通常情况下我们在正则表达式中使用()将我们要保留的内容括住。如下,我们要保留的是中间的数字部分,在替换时使用$1将括号的内容表达出来。$1可以认为是一个变量,代表着()中的内容。

全部替换的结果如下:

保留多处内容

如图,对于"1 Python 2 Java"这样的内容,要保留1和2,将Python和Java替换为C和C++,和上面说的一样,使用()将保留的内容括住,然后使用$1,$2分别代替第一个()和第二个()中的内容。

结果如下:

应用场景

看这样一个例子,对于从网页上复制过来的内容,在VScode中所呈现的样式和网页中看到的不同,如图:题号单独一行,排版看起来不够整齐。为了将题号放在题目前面,一个一个改有点累,所以决定使用正则表达式进行全局替换。

在进行替换时,要考虑到共性与差异性。

共性:对于所有的数字题号来说,其后面都跟着一个换行符。差异性:对于题目中以数字结尾的选项,同样满足共性,考虑利用题号前面的换行符,保持题号和选项的差异性。

总结 

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

相关文章

  • 用正则删除不包含某个字符串的行的代码

    用正则删除不包含某个字符串的行的代码

    这个需求发生在分析apache日志的时候。在日志中发现了一个比较可疑的ip,出现频率颇高,但每天的日志有几百万行,如何从中几百万行中找出需要的数据来进行分析呢?
    2009-09-09
  • 前端常用正则表达式汇总

    前端常用正则表达式汇总

    对于正则表达式,我们或许会经常使用,但是又很难记住。这篇文章,我将介绍下简单的正则表达式知识,然后总结前端开发中常用的正则表达式大全,需要的的朋友参考下
    2017-07-07
  • 教你用正则表达式提取数字和小数点

    教你用正则表达式提取数字和小数点

    最近开发遇到一个新的东西,需要将里面的数字提取出来,下面这篇文章主要给大家介绍了关于用正则表达式提取数字和小数点的相关资料,需要的朋友可以参考下
    2022-09-09
  • js正则表达式常用函数详解(续)

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

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

    ASP 正则表达式常用的几种方法(execute、test、replace)

    asp下正则表达式常用的几种方法,需要的朋友可以参考下。
    2009-12-12
  • 正则表达式常见的4种匹配模式小结

    正则表达式常见的4种匹配模式小结

    今天一起来学习下正则中的匹配模式,所谓的匹配模式,就是指正则中的一些 改变元字符匹配行为 的方式,比如匹配时不区分英文字母的大小写,具有一定的参考价值,感兴趣的可以了解一下
    2021-07-07
  • 邮箱地址正则表达式验证代码合集脚本之家特别版

    邮箱地址正则表达式验证代码合集脚本之家特别版

    由于我们自己也经常需要用到一些常用的正则,每次都上网搜多次,这里脚本之家特为大家整理一些,方面使用。
    2010-05-05
  • javascript IP、域名、手机号码正则表达式验证代码

    javascript IP、域名、手机号码正则表达式验证代码

    一下代码是脚本之家从多个网站整理并总结了下,常用正则表达式的验证代码,可以直接使用。
    2010-04-04
  • 谈谈正则表达式中的句号.

    谈谈正则表达式中的句号.

    好久没更新内容了,今天分享一个小的知识点,一个正则表达式方面的很容易被人忽视的坑,需要的朋友可以参考下
    2018-06-06
  • 正则表达式实现匹配连续数字的方法

    正则表达式实现匹配连续数字的方法

    我这两天刚刚学正则表达式。我觉的正则对连续的字符匹配很简单,但是对连续的一段数字匹配就不是很好。正好最近有朋友问了匹配连续数字的正则,就帮忙写了一下,算是当作温习一下吧。下面这篇文章就主要介绍了正则表达式实现匹配连续数字的方法。
    2017-01-01

最新评论