现代编辑器教程 — 正则搜索与替换
一
有的时候我们需要进行文本处理,搜索与替换是用得比较多的,而有的时候简单的替换不一定能满足我们的需求,这时候就可以用到正则搜索与替换,下面先看个例子:
image.png我需要在每个数字后面加上一个逗号,可以这样
用法 结果
讲解一下,其实每一对()
都有$num对应,可以嵌套,可以并列,嵌套越里层数字越大,并列越右数值越大。
另外也可以这样,
$&
代表匹配到的所有东西,即整个(\d+)
。
二
再来举例,如果我是想要将数字后面的逗号去掉呢?
可以这样:
嵌套
也可以这样:
并列
上面刚好就是一个嵌套和一个并列的例子,都能实现功能,其实还有很多其他的写法,只要能用正则匹配上,你想怎么修改就怎么修改。
三
下面再来看一个我在实际开发过程中碰到的需求,这是我在写sql的时候不小心格式化了代码,然后将格式弄乱了,开始也没有发觉,后面调用时才发现,这时候Ctrl+Z已经不生效了,所以想要将删掉多余的空格,又懒得一个一个的删,也容易漏掉。所以就用上了正则搜索与替换。
我希望将所有的` username `
替换为`username`
,可以这样:
效果如下:
i结果
终
可以看到用到的正则也不复杂,只要学过的人都会,但能解决的问题还是挺多的,在更加复杂的场景下,只要你能写出与之匹配的正则,就能实现你想要的功能,鉴于很多人还不知道编辑器的正则替换如何使用,故有此文章。
只要是现代编辑器基本都支持正则搜索与替换,比如我例子中用到的sublime text编辑器、IntellJ全家桶都是支持的,还有我平时也会用到的Visual Studio Code也是支持。
习题
看再多也不如自己动手学得快,权当练习练习正则表达式。
将下列英文的格式规范化,也就是每个,
和.
后面要加上空格。
William Shakespeare (1564-1616),the foremost writer,prominent dramatist and poet in the European Renaissance.He created a large number of popular literary works,occupies a special position in the history of European literature,has been hailed as "Olympus Zeus in human literature." He is also known as the four great tragedies of ancient Greece,Aeschylus,Sophocles and Euripides.