layout: post
title: 正则表达式_入门基础
categories: 正则
description: Java初始化顺序
keywords: 正则
在线测试工具
[0-9]:代表匹配0-9之间的数字
[0-9]匹配
如图可获得6个匹配结果
^ : 规定匹配内容开头
^匹配
如图当^匹配内容不以a开头的话则无匹配结果
^匹配
如图当^匹配内容以czx开头的话则匹配1个结果czx
^匹配
如图当^匹配内容以czx0开头的话则匹配0个结果,必须字符串以czx0开头才能匹配接下来的内容。
$: 规定匹配内容结尾(大体与^相似)
$匹配
要求匹配的字符串以czx结尾,如图成功匹配一个内容
$匹配
如图字符串以0czx结尾故无法匹配
[] 包含,默认是一个字符长度
[]匹配
在[]内写了way,那么他会单独匹配 w , a , y 三个字符,如图匹配了三处单字符
. : 匹配除“\n”之外的任何单个字符
要匹配包括“\n”在内的任何字符,请使用像“[\s\S]”的模式。(后文解释\s\S模式)
[.]匹配
如图,图中有2个换行符(回车[\n])和2个0,当用.匹配时只能匹配非\n的字符故只能匹配到2个0
[\s\S]匹配
如图,图中有2个换行符(回车[\n])和2个0,当用[\s\S](\s表示空格,\S表示非空格,[]表示匹配[]内表达式的任意一个,即[\s\S]表示的是匹配空格或非空格的内容相当于表达式 [content==" "||content!=" " ] 即包含所有可能)匹配时能匹配非\n的字符故能匹配到2个0和2个换行(\n)
\:相当于转义符
[\]匹配
如图只用\n无法将文本的\n匹配
[\]匹配
如图用\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://img.haomeiwen.com/i10953875/1a90b17e071046eb.png?imageMogr2/auto-orient/strip%7CimageVie w2/2/w/1240)
当匹配0*时,表示匹配0个以上的0字符串
[*]匹配
用0.*0匹配00时可以匹配,因为.*表示0个及0个字符以上故匹配内容00之间可以不需要有内容
[+]匹配
可以看出用0.+0匹配的时候无法匹配,+表示匹配一个字符以上,这里匹配内容00之间明显无内容
[+]匹配
当用0.+0去匹配010时由于00之间有1故00之间有>=1个字符,故可用+匹配到内容
[{n}]匹配
.表示一个除\n外的任意字符,由于匹配文本00之间没有字符故.{1}无法匹配(字符长度<1或>1的情况无法匹配,==1才匹配)
[{n}]匹配
.{1}当匹配文本00之间有字符时,且只有一个字符时匹配成功
[{n}]匹配
.表示一个除\n外的任意字符,由于匹配文本00之间有2个字符故.{1}无法匹配(字符长度<1或>1的情况无法匹配,==1才匹配)
[{n,}]
.{n,}表示匹配n个及n个以上除\n以外的字符
[{n,m}]
.{n,m}表示匹配n个及n个以上且m个及m个以下除\n以外的字符
?:表示尽可能少的匹配
[?]匹配
0.*0匹配时没有?即默认最大长度匹配会在匹配内容内从第一个0匹配到最后一个0,故只可获得1个匹配结果
[?]匹配
0.*0匹配时有?即默认最小长度匹配会在匹配内容内从第一个0匹配到往后最近的一个0,故可获得4个匹配结果
网友评论