正则表达式_入门基础


layout: post

title: 正则表达式_入门基础

categories: 正则

description: Java初始化顺序

keywords: 正则


在线测试工具

http://tool.chinaz.com/regex/



[0-9]:代表匹配0-9之间的数字

10953875-c873778c6ed6df22.png
[0-9]匹配

如图可获得6个匹配结果



^ : 规定匹配内容开头

10953875-4b09c3120294e285.png
^匹配

如图当^匹配内容不以a开头的话则无匹配结果

10953875-9666d828df240a24.png
^匹配

如图当^匹配内容以czx开头的话则匹配1个结果czx

10953875-1be460fbc330a012.png
^匹配

如图当^匹配内容以czx0开头的话则匹配0个结果,必须字符串以czx0开头才能匹配接下来的内容。



$: 规定匹配内容结尾(大体与^相似)

10953875-683dc6c629a5baf3.png
$匹配

要求匹配的字符串以czx结尾,如图成功匹配一个内容

10953875-c9c5f6576e03d999.png
$匹配

如图字符串以0czx结尾故无法匹配



[] 包含,默认是一个字符长度

10953875-8eca787187d4fd5a.png
[]匹配

在[]内写了way,那么他会单独匹配 w , a , y 三个字符,如图匹配了三处单字符



. : 匹配除“\n”之外的任何单个字符

要匹配包括“\n”在内的任何字符,请使用像“[\s\S]”的模式。(后文解释\s\S模式)

10953875-0bf1a62b080fcd73.png
[.]匹配

如图,图中有2个换行符(回车[\n])和2个0,当用.匹配时只能匹配非\n的字符故只能匹配到2个0

10953875-558e22cfb3cf7f4e.png
[\s\S]匹配

如图,图中有2个换行符(回车[\n])和2个0,当用[\s\S] (\s表示空格,\S表示非空格,[]表示匹配[]内表达式的任意一个,即[\s\S]表示的是匹配空格或非空格的内容相当于表达式 [content==" "||content!=" " ] 即包含所有可能)匹配时能匹配非\n的字符故能匹配到2个0和2个换行(\n)



\:相当于转义符

10953875-776b7fc7c4b77977.png
[\]匹配

如图只用\n无法将文本的\n匹配

10953875-b390c57733d42935.png
[\]匹配

如图用\n表示匹配文本内的\n将标识符\n转义成文本\n



*,+,{n},{n,},{n,m}匹配

*:匹配前面的子表达式任意次(0次以上)
+:匹配前面的子表达式1次及一次以上(>=1次以上)
{n}:匹配前面的子表达式n次(==n)
{n,}:匹配前面的子表达式n次及一次以上(>=n次以上)
{n,m}:匹配前面的子表达式n次及n次以上,m次及m次以下(>=n&&<=m次)

![[*]匹配](https://upload-images.jianshu.io/upload_images/10953875-1a90b17e071046eb.png?imageMogr2/auto-orient/strip%7CimageVie w2/2/w/1240)
当匹配0*时,表示匹配0个以上的0字符串

10953875-d77fbff83fae679e.png
[*]匹配

用0.*0匹配00时可以匹配,因为.*表示0个及0个字符以上故匹配内容00之间可以不需要有内容

10953875-e1432d9ec90c243d.png
[+]匹配

可以看出用0.+0匹配的时候无法匹配,+表示匹配一个字符以上,这里匹配内容00之间明显无内容

10953875-2b0172a794fb351b.png
[+]匹配

当用0.+0去匹配010时由于00之间有1故00之间有>=1个字符,故可用+匹配到内容

10953875-e6975630ccc4ed82.png
[{n}]匹配

.表示一个除\n外的任意字符,由于匹配文本00之间没有字符故.{1}无法匹配(字符长度<1或>1的情况无法匹配,==1才匹配)

10953875-20e29787e2965199.png
[{n}]匹配

.{1}当匹配文本00之间有字符时,且只有一个字符时匹配成功

10953875-37c465c1a00f09bc.png
[{n}]匹配

.表示一个除\n外的任意字符,由于匹配文本00之间有2个字符故.{1}无法匹配(字符长度<1或>1的情况无法匹配,==1才匹配)

10953875-7e02cc87f4615316.png
[{n,}]

.{n,}表示匹配n个及n个以上除\n以外的字符

10953875-a840a4e356025fed.png
[{n,m}]

.{n,m}表示匹配n个及n个以上且m个及m个以下除\n以外的字符



?:表示尽可能少的匹配

10953875-42cf9b8b294c10aa.png
[?]匹配

0.*0匹配时没有?即默认最大长度匹配会在匹配内容内从第一个0匹配到最后一个0,故只可获得1个匹配结果

10953875-4e003ce64efe474a.png
[?]匹配

0.*0匹配时有?即默认最小长度匹配会在匹配内容内从第一个0匹配到往后最近的一个0,故可获得4个匹配结果





猜你喜欢

转载自blog.csdn.net/weixin_34018169/article/details/87233031