正規表示式的一些符號基礎和例項解析

2022-02-28 16:19:18 字數 1553 閱讀 2540

注意驗證的時候不要出現什麼中文括號之類的

看又看不出

會坑死自己)

1.rub+b

可以匹配rubb / rubbb 但不能匹配 rubab

所以只能匹配rub+(任意的(大於1個)b)

2.rub*b

匹配rub+(任意數量的b可以為0)

3.rua?b

?代表前面的字元最多隻可以出現1次

也就是只匹配ruab或者rub

4.轉義字元『/

5.,n 是乙個非負整數。匹配確定的 n 次(注意是指前面的字元)

比如gnb只匹配gggnb

ag 匹配2個以上的a +g

ag 匹配2個到4個a+g

6.『.』任意字元

7.『^』從開始處的文字開始匹配 『$』匹配結束處

8.ter\b 以空格為乙個單詞 匹配以ter結尾的單詞

chapter aater 12ddsdater 則匹配到3個

9.\w 相當於([0-9a-za-z_]) 匹配字母或下劃線或漢字(甚至還包括一些希臘字母,俄文的字母)  

10.\d匹配數字

11.\s匹配任意的空白符

12./g 表示該表示式將用來在輸入字串中查詢所有可能的匹配,返回的結果可以是多個。如果不加/g最多隻會匹配乙個

13./i  表示匹配的時候不區分大小寫

14./m多行匹配 比如說出現/n的換行符時

15./s 單行匹配

16./x 忽略空白

17.『\1』 匹配的是 所獲取的第1個()匹配的引用。

18.『\2』 匹配的是 所獲取的第2個()匹配的引用。

結合例項

(1)匹配重複字元

var str = "is is the cost of of gasoline going up up";

var patt1 = /\b([a-z]+) \1\b/ig;

解析: \b([a-z]+) 從小寫字串開始匹配

\1 重複匹配一遍\b([a-z]+) 比如 前面匹配過的字串abc 他需要再出現abc一次才匹配

所以我們先用 \b([a-z]+) \1 如圖測試

只匹配到一次重複

而/ig則是(全文查詢、忽略大小寫)

匹配結果為 is is  of of up up

(2)匹配**格式

(\w+):\/\/([^/:]+)(:\d*)?([^# ]*) (這裡可能包括中文括號等字元,測試請自行轉化)

解析我們拆成幾部分

1.(\w+):\/\/ 至少乙個的字母或下劃線或漢字+:// => 比如www://

2.([^/:]+)仍以數量的:開頭的匹配 => :aa:bb:cc =>匹配aa ,bb,cc

3.(:\d*)? 匹配最多乙個『:』+數字 :80=> 匹配為  :80 (匹配埠)

4.([^#]*) 匹配任意字元多次(檔案路徑)。

(3)匹配ascii碼大於255

[^\x00-\xff]

正規表示式的一些符號

字元描述 將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...

java 正規表示式的一些符號

x 字元 x 反斜線字元 0n 八進位制值的字元0n 0 n 7 0nn 八進位制值的字元 0nn 0 n 7 0mnn 八進位制值的字元0mnn 0mnn 0 m 3,0 n 7 xhh 十六進製制值的字元0xhh uhhhh 十六進製制值的字元0xhhhh t 製表符 u0009 n 換行符 u...

正規表示式符號的一些理解

關於正規表示式符號的一些理解 a 匹配有a或者沒有a 的字元 匹配全部字元 沒有意義 ba 匹配至少乙個b後面有多個或零個a cca 匹配至少包含cc的後面有乙個或多個a a hello匹配所有0個或多個a後,緊跟hello的行。即hello前面可以有任意多個a。s d 匹配 s d之間任意兩個字元...