美文网首页
正则表达式极简入门

正则表达式极简入门

作者: 卡布奇洛猫 | 来源:发表于2018-12-10 22:27 被阅读0次

基本概念

字面量

如图所示,字面量就是你想要匹配的字符串.


字面量.png

字符组(方括号表达式)

如图所示,字符组由字符组起始符 '[' ,要匹配的模式与字符组结束符 ']'


字符组.png

锚位符

锚位符由脱字符(^)与美元符号($)构成.

脱字符将会使后面的字面量,字符组等,匹配到一段字符串的开头.而美元符号则会使它前面的字面量,字符组等,匹配到一段字符串的结尾.

如图所示,普通匹配可以直接匹配到2334中233.然而使用了脱字符的正则表达式则不能匹配到2334中的233,因为$符号前面的是数字3,那么匹配的字符串末尾也必须要是数字三,锚位符的主要作用就是用来指定字符串的开头与结尾的.

普通匹配.png 脱字符匹配.png

量词

量词是类似于循环一样的东西.诸如{m,n},*,+这些就属于量词.
例如\d{2,3},它就表示匹配2到3次数字.而\d*则表示匹配0到多次数字


捕获分组,向后引用与非捕获分组

捕获分组我举三个例子,就能明白了.

(\d)就是一个分组,在正则中,可以由\1代指分组1.


1.png

(\d)(\D),在这里面(\D)是分组2,由\2代指.


2.png

(\d(\D))(\d)在这里,最外层的\d是分组1,而在内层的\D则是分组2,[0-9]则是分组3.
可以看出分组是按照从外往内,从左往右进行划分的.


3.png

所谓向后引用,则是在建立分组后,由\1,\2...\n这样的关键字进行引用的.

非捕获分组则是不会被捕获的分组,即无法被\1,\2这样的向后引用关键字所指代的分组.
例如: (?:\d),此时使用\1就无效了.


这里有一个容易让人误会的地方,我举个例子:
例如: (\d)\1
在这里 \1并不是代表字符组\d,而是代表\d匹配的值,例如\d匹配到了2,那么\1就代表2.


选择

形如T|t这样的形式就是选择,它会在T与t之间选择一个进行匹配


选择.png

相关文章

网友评论

      本文标题:正则表达式极简入门

      本文链接:https://www.haomeiwen.com/subject/mtfjhqtx.html