工作中总会用到一些使用正则表达式的时候,这个东西又特别难记,所以新开一篇文章专门放自己常用的正则表达式。
正则表达式英文叫 “regular expression” ,直译过来就是规律表达式的意思,不知道第一个这么翻译的人是谁。
一、正则表达式学习教程
如果只是快速查一下表,可以看这个 正则表达式速查表
二、正则表达式匹配工具
写完正则表达式后,一般都需要测试一下,不要直接扔到测试环境里。
你可以用
- [https://regex101.com/]
- [https://deerchao.cn/tools/wegester/index.html]
来检查自己的公式。
如果你写的是js版本,你可以用 [https://regexper.com/] 来可视化的看自己的公式。
这里推荐一下:[http://wangwl.net/static/projects/visualRegex/],也是一个好用的可视化工具。
三、正则表达式在工具中的使用
3.1 VS Code
这是非常常用的编辑器,使用正则也很简单,按下 command + f
打开文件搜索,点击搜索框最右边的icon,激活正则表达式模式。
这样第一行就能输入正则表达式,匹配之后还可以在替换中替换字符。
3.2 JavaScript
在js中使用正则表达式也很简单,首先创建表达式字面量。
let regex = new RegExp("ab+c");
然后可以调用一些方法来使用。
var result = regex.exec("your input text");
// 如果匹配到返回一个数组
同理,还可以使用 test
,match
,search
,replace
,split
方法。
具体的使用请看MDN的这篇文章。
3.3 Office Word
很神奇,word竟然也支持,只要在替换的高级搜索中,勾选“使用通配符”,就可以使用了。
至于同厂的 Excel ,竟然不支持这个功能,只能通过内嵌的VBA来实现。这里就不多说了。
此外,Mac OS 自带的 Number 和 Page 均不支持此功能,死心吧。
四、一些常用的正则表达式
这里后续会陆续更新一些内容进来。
4.1 匹配空行
^\s*(?=\r?$)\n
^
代表一行开始,\s*
0个或任意空白字符,\n
匹配换行符。
(?=\r?$)
复杂些,\r?
匹配0个或1个回车符,$
代表行尾。(?=)
代表正向匹配预查,匹配后面紧跟着的\r?$
的^\s*
。
含义是这个含义,至于怎么构造出来的我就不太理解了。但是确实是有用的。
好啦,最后祝大家高效工作少加班。