正则有个特点:看似简单,但是想用的时候一下子又想不起来,搜索也不容易搜到我们具体想要的组合。因此很有必要一次性弄懂,并且记录下来,方便后续回忆查询。
有需要可以保存下边这张图,很全面。

强规则
正则中有点强规则需要记住,跟我们的99乘法表类似:
^:开头字符;在该字符后接规则,表示以该规则为开头的内容
$:结尾字符;在该字符前接规则,表示以该规则为结尾的内容
{}:数量个数限制符;在{}加入数字表示限制个数,比如{n}表示n个,{n,}表示至少n个,{n,m}表示n-m个
[]:表示[]中任意出现的都可以;比如[0-9]表示0-9的数字都会匹配上
. :任意字符(除了n)
* :重复0-n个;比如.*表示所有字符。
?:0-1个
n:换行符
t:制表符
s:空格,制表符
S:(大写的S)匹配非空白
d:匹配数字,0-9
D:匹配非数字
w:匹配单词字符,即a-z,A-Z,_,各种语言数字(例如中文汉字)
W:匹配非单词字符
组合
有了上面的强规则,我们就可以根据这些内容搭配我们想要的内容:
数字:^[0-9]*$(表示以0-9的任意数字开头并重复n次都可以,并且结尾的时候也是以数字结尾的)
n位数字:^d{n}$(d表示数字,{n}表示n为数字)
至少n位的数字:^d{n,}$(同上,区别的只是{}中的用法)
m-n位的数字:^d{m,n}$
0和非零开头的数字:^(0|[1-9][0-9]*)$(在^后面加个()表示多种情况下的内容,中间用|分割开来,后面没用|分隔开的[0-9]*不参与开头的第一位限制,而是从第二位开始后的任意数字)
非负整数:^d+$
非零开头最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$
了解更多可以看图片中的内容
「卓拾书非卓师叔」
作者:卓师叔,爱书爱金融的NLPer
了解更多和AI、金融相关的知识,请关注公众号:卓拾书非卓师叔