你是否有过类似以下的需求? 点击这里立刻解决:https://dalerkd.github.io/Better_Regex.html
将右边的内容匹配后排到左边,变为如下图的效果:
单纯的正则是没有合并功能的。
从左边变换为右边。
我们经常需要为数据增加序号,也就是数据往往和顺序相关。 单纯的正则没有提供第几次匹配这一信息,而该信息往往是重要的。
我尝试去找相关资料,但没有什么语法似乎是原生提供这些功能的。 最后JavaScript的正则库终于给了一条容易的路径,我逼迫自己整理混乱的思绪完成这个小作品: Batter_Regex-Github
在线地址点击:https://dalerkd.github.io/Better_Regex.html
下载并打开这个html即刻开始体验。
&t : 第几次被匹配 &0 : 右侧数据池 &1 : 右侧数据池的第1次捕获(即第一个括号) 。。。 :。。。我们用第一个问题做例子: 合并数据:
我们用&符号来作为右侧匹配内容的指带。 效果如上图。我们完成了这项合并工作。
&t提供了被匹配者出现的顺序信息,演示如下:
&符号可以按照你的需求自定义。
利用JS的正则库在匹配时提供的处理时机,做这种扩展。 2017年5月6日
前两天查资料在博客遇到一个知识点: 回溯查找. 用来匹配11而不是12这种形式的数字.通过\1
Notepad++用的多了,发现正则在一些情况下不称手.
正则能这样更好: 1. 提供更多匹配数据的信息,比如它是第几次匹配次数. 2. 可以自定义替换函数 3. 数据池 从某块数据中按照某种规则获取数据,来作为替换内容用.
替换的核心是映射,匹配完毕,该是映射的作为主角的时候了. 正则提供了匹配者位置和长度的信息.替换程序利用这个位置和长度以及其他信息,对目标进行修改. 而正则也提供了无损插入删除的接口给替换程序用来操纵数据.
这样,我们就可以: - 1.提供更多匹配数据的信息.能够让我们将数据替换为:
例子:
abcd 1a2b3c4d 2.匹配后替换前提供计算能力,这个是很强大的. a 0x41 b 0x51 3.同样是服务第2项,比如将另一个文档的内容进行某种匹配,然后一一对应替换到这篇文档中的内容. 这里用了两次正则. JS,Python等编程语言中的正则库似乎能实现这种效果. 但是能否更简单一些呢? 其实JS已经很简单了,看一下能否对JS这部分进行一下封装。 (已经完成。)仓库Batter_Regex-Github
点击这里立刻解决:https://dalerkd.github.io/Better_Regex.html
下载并打开这个html即刻开始体验。
语法参考:
&t : 第几次被匹配 &0 : 右侧数据池 &1 : 右侧数据池的第1次捕获(即第一个括号) 。。。 :。。。