一
有的时候我们需要进行文本处理,搜索与替换是用得比较多的,而有的时候简单的替换不一定能满足我们的需求,这时候就可以用到正则搜索与替换,下面先看个例子:
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.
网友评论