溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

JS中正則表達(dá)式全局匹配正斜杠的方法是什么

發(fā)布時(shí)間:2023-03-02 14:08:15 來源:億速云 閱讀:88 作者:iii 欄目:開發(fā)技術(shù)

這篇“JS中正則表達(dá)式全局匹配正斜杠的方法是什么”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“JS中正則表達(dá)式全局匹配正斜杠的方法是什么”文章吧。

JS中正則表達(dá)式全局匹配正斜杠

正則表達(dá)式

語法:

必須寫在兩個(gè)反斜線之間 / 要匹配的規(guī)定/;

列如: var 變量名 = / 要匹配的規(guī)定/;

2.開頭以 ^ 這個(gè)符號(hào)開頭表示以什么開頭

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

3、結(jié)尾以 $ 符號(hào)結(jié)束表示以什么結(jié)束

列如:/ 0$/ 以0結(jié)束

4、正則表達(dá)式后面跟字母的:

列如:/ /i; 不區(qū)分大小寫

列如:/ / g 執(zhí)行全局匹配

修飾詞:

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

g 全局匹配

m 多 行匹配

5. w

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

換行符

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

包括換行符在內(nèi)

6、d

d (小寫d)代表數(shù)字

D (大寫)帶表非數(shù)字

7、{x,Y}

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

8、[0-9]

[0-9] 代表只能輸入0到9的的數(shù)字

但是列如:

要匹配的東西: linx

正則式:lin[^ux]x

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

也就是說中間那一位必須有一個(gè)字符哪怕是空格

這里要注意: [^0-9] 中括號(hào)里面寫^是除掉里面的東西

如果^寫在外面則是以什么結(jié)尾

9、支持正則表達(dá)式的 String 對(duì)象的方法

1、search

var str="hellow word333333"

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

它會(huì)返回?cái)?shù)字 7

2、replace 替換與正則表達(dá)式匹配的字符串

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

var str="hellow word"

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

結(jié)果輸出為:hellow ddd

3、split 把字符串分割為數(shù)組

var str="hellow word333333"

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

結(jié)果輸出:hell,w w,rd333333

4.語法:

正則表達(dá)式.test(要效驗(yàn)的值)

正則式可以給了一個(gè)變量

要效驗(yàn)的值也可以給了一個(gè)變量

補(bǔ)充:正則表達(dá)式如何匹配正反斜杠

反斜杠的麻煩

在早期規(guī)定中,正則表達(dá)式用反斜杠字符 ("\") 來表示特殊格式或允許使用特殊字符而不調(diào)用它的特殊用法。這就與 Python 在字符串中的那些起相同作用的相同字符產(chǎn)生了沖突。

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

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

簡(jiǎn)單地說,為了匹配一個(gè)反斜杠,不得不在 RE 字符串中寫 '\\\\',因?yàn)檎齽t表達(dá)式中必須是 "\\",而每個(gè)反斜杠在常規(guī)的 Python 字符串實(shí)值中必須表示成 "\\"。在 REs 中反斜杠的這個(gè)重復(fù)特性會(huì)導(dǎo)致大量重復(fù)的反斜杠,而且所生成的字符串也很難懂。

解決的辦法就是為正則表達(dá)式使用 Python 的 raw 字符串表示;在字符串前加個(gè) "r" 反斜杠就不會(huì)被任何特殊方式處理,所以 r"\n" 就是包含"\" 和 "n" 的兩個(gè)字符,而 "\n" 則是一個(gè)字符,表示一個(gè)換行。正則表達(dá)式通常在 Python 代碼中都是用這種 raw 字符串表示。

常規(guī)字符串Raw 字符串
"ab*"r"ab*"
"\\\\section"r"\\section"
"\\w+\\s+\\1"r"\w+\s+\1"

執(zhí)行匹配

一旦你有了已經(jīng)編譯了的正則表達(dá)式的對(duì)象,你要用它做什么呢?`RegexObject` 實(shí)例有一些方法和屬性。這里只顯示了最重要的幾個(gè),如果要看完整的列表請(qǐng)查閱 Python Library Reference

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

如果沒有匹配到的話,match() 和 search() 將返回 None。如果成功的話,就會(huì)返回一個(gè) `MatchObject` 實(shí)例,其中有這次匹配的信息:它是從哪里開始和結(jié)束,它所匹配的子串等等。

以上就是關(guān)于“JS中正則表達(dá)式全局匹配正斜杠的方法是什么”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

js
AI