前一段做的一个项目用到了不少的正则,现在抽空总结一下,把几个容易混淆的问题提出来,主要是反向引用:
记得5年前见到一个同事在editplus中用正则替换的方式实现将数据转成sql,当时惊为天人,那会儿也不明白,现在明白了,自己写一下,如下图是原始数据:
通过使用editplus本身提供的查找替换功能,做如下处理,如图:
这里其实是通过捕获分组,再替换达到的。
同样的目的,可以用java来实现,如下图:
不同的是,在java这个宿主语言中,捕获分组用的是$。
这个是javascript版的,和java一样,对于分组捕获用的都是$的方式:
再来看一下反向引用的例子,反向引用我理解的是,在创建的正则表达式中可以引用之前的表达式
在javascript中也是这样使用反向引用的:如
但是结果却和我想的不一样,如图:
不知道怎么回事,期待的返回结果应该是两个abab呀,了解的同学给个答案。