日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

正则表达式的匹配规则

發(fā)布時(shí)間:2025/3/12 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 正则表达式的匹配规则 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

字面量字符和元字符

大部分字符在正則表達(dá)式中,就是字面的含義,比如 /a/ 匹配 a, /b/ 匹配b。這種只表示它字面量含義的被稱為字面量字符。

除了字面量,還有一些字符有特殊含義,不代表字面意思,被稱為元字符
  
1,點(diǎn)字符(.)
      點(diǎn)字符匹配除回車(\r)、換行(\n)、行分隔符(\u2028)和分段符(\u2029)之外的所有字符 注:碼點(diǎn)大于0xFFFF的Unicode字符不能被匹配,因?yàn)闀?huì)被認(rèn)為是兩個(gè)字符。      
      
2,位置字符
      ^ 表示字符串的開始位置, $ 表示字符串的結(jié)束位置。
      
3,選擇符(|)
      豎線符號(hào)在正則中表示 ‘或關(guān)系’ , 即匹配其中之一即可。
    …等等

轉(zhuǎn)義符

正則中那些有特殊含義的元字符,如果要匹配它們本身,就要在前面加反斜杠。 比如要匹配 +, 就必須寫成 +;
  在正則中,需要反斜杠轉(zhuǎn)義的一共有12個(gè)字符: ^ . [ $ ( ) | * + ? { \ 注意:如果使用RegExp方法生成正則,轉(zhuǎn)義需要加兩個(gè)斜杠,因?yàn)樽址枰绒D(zhuǎn)義一次。

特殊字符

\r 匹配回車符

\t 匹配制表符 tab

\n 匹配換行符

\v 匹配垂直制表符

\f 匹配換頁(yè)符

\0 匹配null字符

字符類

字符類表示有一系列字符可供選擇,只要匹配其中一個(gè)就可以。所有可供選擇的字符放在中括號(hào)內(nèi),比如[abc] 表示 a b c之中任選一個(gè)。
  
1,脫字符(^)
    如果方括號(hào)內(nèi)的第一個(gè)字符為 ^ , 則表示取反。 [^]表示匹配一切字符。
    
2,連字符(-)
    對(duì)于連續(xù)序列的字符,可以用-來(lái)進(jìn)行簡(jiǎn)寫。 a-z 0-9 A-Z -u4e00-\u9fa5

預(yù)定義模式

\d 匹配0-9的數(shù)字, 相當(dāng)于[0-9]

\D 匹配非0-9的字符。 相當(dāng)于[^0-9]

\w 匹配任意字母數(shù)字下劃線。 相當(dāng)于[0-9a-zA-Z_]

\W 相當(dāng)于\w取反

\s 匹配空格(包括換行符、制表符、空格符), 相當(dāng)于[ \t\r\n\v\f]

\S 相當(dāng)于\s取反

\b 匹配單詞邊界

\B 匹配非單詞邊界,即在詞的內(nèi)部

重復(fù)類

模式的匹配次數(shù),使用大括號(hào){ }表示,{n}表示重復(fù)n次,{n,}表示至少重復(fù)n次,{n,m}表示重復(fù)不少于n次,不多于m次。

量詞符

量詞符用來(lái)設(shè)定某個(gè)模式出現(xiàn)的次數(shù)。
    ?問(wèn)號(hào)表示某個(gè)模式出現(xiàn)0次或1次, 等同于{0, 1};
    
    * 星號(hào)表示出現(xiàn)0次或多次,等同于{0, } 
    
    + 加號(hào)表示出現(xiàn)1次或多次, 等同于{1, }

貪婪模式

量詞符默認(rèn)情況下都是最大可能匹配,即匹配到不能匹配為止,這種模式就叫貪婪模式
  /a+/ 表示匹配1個(gè)或多個(gè)a,那么到底會(huì)匹配幾個(gè)a呢? 因?yàn)槟J(rèn)的是貪婪模式,所以會(huì)一直匹配到后面不是a為止。
  如果想將貪婪模式改為非貪婪模式,可以在量詞后面加一個(gè)問(wèn)號(hào)。這時(shí)候一旦滿足條件,就不再往下匹配了。
  *?表示某個(gè)模式出現(xiàn)0次或者多次,采用非貪婪模式
  +?表示模式出現(xiàn)1次或者多次,采用非貪婪模式

修飾符

g 表示全局匹配

i 表示忽略大小寫

m 表示多行模式。會(huì)修改^和的行為。加了m修飾符后,和的行為。 加了m修飾符后,^和m會(huì)識(shí)別換行符( \n )

組匹配

1,正則中的括號(hào)()表示分組匹配,括號(hào)中的模式表示分組中的內(nèi)容。
    在正則表達(dá)式內(nèi)部, 還可以使用 \n 來(lái)引用括號(hào)匹配的內(nèi)容, n是從1開始,表示對(duì)應(yīng)順序的括號(hào)
    /(.)b(.)\1b\2/.test(‘a(chǎn)bcabc’); \1匹配了第一個(gè)括號(hào)的a, \2匹配了第二個(gè)括號(hào)的c
    
2,非捕獲組
    (?:x)稱為非捕獲組,表示不返回該組匹配的內(nèi)容。
    
3,先行斷言
    x(?=y)稱為先行斷言。x只有在y前面才匹配,y不計(jì)入匹配結(jié)果中。
    
4,先行否定斷言
    x(?!y) 為先行否定斷言。 x只有不在y前面才匹配。
  
  用通俗的語(yǔ)句來(lái)解釋上面的這些:
  
    x(?! y): x只有不在y前面才匹配
    
    x(?=a): 表示在a的前面 才匹配。
    
    x(?<= a): 表示a的后面才匹配
    
    x(?<! a): 表示需要不匹配某個(gè)模式, 與 (?!a)相反

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的正则表达式的匹配规则的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。