首頁 > 軟體

JS中正規表示式全域性匹配正斜槓的方法

2023-03-02 18:01:04

JS中正規表示式全域性匹配正斜槓

正規表示式

語法:

必須寫在兩個反斜線之間 / 要匹配的規定/;

列如: var 變數名 = / 要匹配的規定/;

2.開頭以 ^ 這個符號開頭表示以什麼開頭

列如:/^1/ 表示以1開頭

3、結尾以 $ 符號結束表示以什麼結束

列如:/ 0$/ 以0結束

4、正規表示式後面跟字母的:

列如:/ /i; 不區分大小寫

列如:/ / g 執行全域性匹配

修飾詞:

i 大小寫不敏感 (不區分大小寫)

g 全域性匹配

m 多 行匹配

5. w

w 反斜槓w的 (w是小寫)是匹配字母數位下劃線,不包括

換行符

W 反斜槓w (w是大寫)匹配除了字母數位下劃線以外的

包括換行符在內

6、d

d (小寫d)代表數位

D (大寫)帶表非數位

7、{x,Y}

{X,Y}x代表最少能有幾個 Y代表最大能有幾個;

8、[0-9]

[0-9] 代表只能輸入0到9的的數位

但是列如:

要匹配的東西: linx

正則式:lin[^ux]x

它是匹配不到linx的 但是可以匹配到lin x;

也就是說中間那一位必須有一個字元哪怕是空格

這裡要注意: [^0-9] 中括號裡面寫^是除掉裡面的東西

如果^寫在外面則是以什麼結尾

9、支援正規表示式的 String 物件的方法

1、search

var str="hellow word333333"

document.write(str.search(/world/))

它會返回數位 7

2、replace 替換與正規表示式匹配的字串

replace('X','Y') X為要替換的內容 Y為將要替換上去的內容

var str="hellow word"

document.write(str.replace('word','ddd'))

結果輸出為:hellow ddd

3、split 把字串分割為陣列

var str="hellow word333333"

document.write(str.split('o'))

結果輸出:hell,w w,rd333333

4.語法:

正規表示式.test(要效驗的值)

正則式可以給了一個變數

要效驗的值也可以給了一個變數

補充:正規表示式如何匹配正反斜槓

反斜槓的麻煩

在早期規定中,正規表示式用反斜槓字元 ("") 來表示特殊格式或允許使用特殊字元而不呼叫它的特殊用法。這就與 Python 在字串中的那些起相同作用的相同字元產生了衝突。

讓我們舉例說明,你想寫一個 RE 以匹配字串 "section",可能是在一個 LATEX 檔案查詢。為了要在程式程式碼中判斷,首先要寫出想要匹配的字串。接下來你需要在所有反斜槓和其它元字元前加反斜槓來取消其特殊意義,結果要匹配的字串就成了"\section"。 當把這個字串傳遞給re.compile()時必須還是"\section"。然而,作為Python的字串實值(string literals)來表示的話,"\section"中兩個反斜槓還要再次取消特殊意義,最後結果就變成了"\\section"。

字元階段
section要匹配的字串
\section為 re.compile 取消反斜槓的特殊意義
"\\section"為"\section"的字串實值(string literals)取消反斜槓的特殊意義

簡單地說,為了匹配一個反斜槓,不得不在 RE 字串中寫 '\\',因為正規表示式中必須是 "\",而每個反斜槓在常規的 Python 字串實值中必須表示成 "\"。在 REs 中反斜槓的這個重複特性會導致大量重複的反斜槓,而且所生成的字串也很難懂

解決的辦法就是為正規表示式使用 Python 的 raw 字串表示;在字串前加個 "r" 反斜槓就不會被任何特殊方式處理,所以 r"n" 就是包含"" 和 "n" 的兩個字元,而 "n" 則是一個字元,表示一個換行。正規表示式通常在 Python 程式碼中都是用這種 raw 字串表示。

常規字串Raw 字串
"ab*"r"ab*"
"\\section"r"\section"
"\w+\s+\1"r"w+s+1"

執行匹配

一旦你有了已經編譯了的正規表示式的物件,你要用它做什麼呢?`RegexObject` 範例有一些方法和屬性。這裡只顯示了最重要的幾個,如果要看完整的列表請查閱 Python Library Reference

方法/屬性作用
match()決定 RE 是否在字串剛開始的位置匹配
search()掃描字串,找到這個 RE 匹配的位置
findall()找到 RE 匹配的所有子串,並把它們作為一個列表返回
finditer()找到 RE 匹配的所有子串,並把它們作為一個迭代器返回

如果沒有匹配到的話,match() 和 search() 將返回 None。如果成功的話,就會返回一個 `MatchObject` 範例,其中有這次匹配的資訊:它是從哪裡開始和結束,它所匹配的子串等等。

到此這篇關於JS中正規表示式全域性匹配正斜槓的方法的文章就介紹到這了,更多相關js正規表示式匹配斜槓內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com