layout: post
title: 正則表達式_入門基礎
categories: 正則
description: Java初始化順序
keywords: 正則
在線測試工具
[0-9]:代表匹配0-9之間的數字
[0-9]匹配
如圖可獲得6個匹配結果
^ : 規(guī)定匹配內容開頭
^匹配
如圖當^匹配內容不以a開頭的話則無匹配結果
^匹配
如圖當^匹配內容以czx開頭的話則匹配1個結果czx
^匹配
如圖當^匹配內容以czx0開頭的話則匹配0個結果,必須字符串以czx0開頭才能匹配接下來的內容沿侈。
$: 規(guī)定匹配內容結尾(大體與^相似)
$匹配
要求匹配的字符串以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://upload-images.jianshu.io/upload_images/10953875-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個匹配結果