下面看一个例子:
看的出来(?P<year>\d{4})中,可以用尖括号中的名字去获取后面正则匹配出来的数值,这样方便调用,便于记忆。
这些内容就是我上篇不太懂的地方,下面看个例子来理解一下,如图:
对比两个例子发现,在使用(?:\d+)的时候,只是做了匹配的动作,但是并没有打印出来结果,这就是非捕获型括号的作用,我们在匹配域名的时候就可以使用到,如下:
怎么样?看出区别了吧。
这个东西也不太好懂,我们来看个例子:
从例子中可以看到,<?=...>的作用是获取匹配到正则的地方,使用这个可以在给定的正则前面添加你想要添加的字符串,而<?!...>与之前就正好相反的作用。这个是正序匹配,还有个逆序匹配,如下图:
大家自己体会吧,实在看不懂就去看《正则指引》那本书。
下面看个例子:
从例子看出,汉字在不指定u的时候,打印出来的是多个十六进制串,他将一个汉字分解成两个十六进制,在指定了u之后,出现的是unicode编码格式。
我们就可以用这两种模式去匹配所有中文字符,如下:
关于正则的就写这么多吧,剩下的就靠大家自己了,多写代码多测试,这才是编程的真谛。