柚子快報(bào)激活碼778899分享:正則表達(dá)式RegExp(1)
| 代碼/語法 | 說明 |
| — | — |
| [aeiou] | 匹配aeiou中任一字符 |
| [^aeiou] | 匹配除了aeiou這幾個(gè)字母以外的任意字符 |
轉(zhuǎn)義字符
| 代碼/語法 | 說明 |
| — | — |
| \a | 響鈴 |
| \t | 制表符 |
| \r | 回車符 |
| \n | 換行符 |
| \f | 換頁符 |
| \b | 退格 |
| \e | ESC |
| \v | 垂直制表符 |
| \cC | 控制字符(如ctrl+c) |
| \040 | 八進(jìn)制(0開頭) |
| \x20 | 十六進(jìn)制(x開頭) |
| \uA0FF | Unicode字符 |
| \G | 當(dāng)前搜索的開頭 |
| \A | 必須出現(xiàn)在字符串開頭 |
| \Z | 必須實(shí)現(xiàn)在字符串結(jié)尾或\n之前 |
| \z | 必須實(shí)現(xiàn)在字符串結(jié)尾 |
| 注1 | 在[]中,正則表達(dá)式中有含義的字符都要再前方加\轉(zhuǎn)義。如\寫作\\ |
| 注2 | \b在[]中才表示退格,在外面表示單詞邊界 |
| 注3 | 正則表達(dá)式不允許雙引號(hào)中出現(xiàn)單引號(hào) |
注意換行的回車不是一個(gè)東西,雖然我們看上去是一樣的。這個(gè)和編碼發(fā)展歷史有關(guān),區(qū)別見下表:
| Unicode序列 | 正則 | 名稱 | 簡寫 | 描述 |
| — | — | — | — | — |
| U+000DU+000A | (\r\n) | 回車換行 | CRLF | Windows,DOS中的文本文件 |
| U+000D | (\r) | 回車 | CR | 舊版的MacOS中的文本文件 |
| U+000A | (\n) | 換行 | LF | Unix,Linux,BSD和OSx中的文本文件 |
限定符
貪婪的
| 代碼/語法 | 說明 |
| — | — |
| * | 重復(fù)零次或更多次 |
| + | 重復(fù)一次或更多次 |
| ? | 重復(fù)零次或一次 |
| {n} | 重復(fù)n次 |
| {n,} | 重復(fù)n次或更多次 |
| {n,m} | 重復(fù)n到m次 |
非貪婪的
| 代碼/語法 | 說明 |
| — | — |
| *? | 重復(fù)任意次,但盡可能少重復(fù) |
| +? | 重復(fù)1次或更多次,但盡可能少重復(fù) |
| ?? | 重復(fù)0次或1次,但盡可能少重復(fù) |
| {n,m}? | 重復(fù)n到m次,但盡可能少重復(fù) |
| {n,}? | 重復(fù)n次以上,但盡可能少重復(fù) |
分組
我們已經(jīng)提到了怎么重復(fù)單個(gè)字符,但如果想要重復(fù)多個(gè)字符又該怎么辦?你可以用小括號(hào)來指定子表達(dá)式(也叫做分組),然后你就可以指定這個(gè)子表達(dá)式的重復(fù)次數(shù)了。 比如
(?#這一行是個(gè)注釋,注釋這樣寫)
^abc{2,} (?#匹配ab開頭后面2個(gè)及以上c)
^a(bc){2,} (?#匹配a開頭后面2個(gè)及以上bc)
每一個(gè)()中的變量都會(huì)被分配一個(gè)編號(hào)((?:exp)除外),按()出現(xiàn)順序,從左到右,從外到內(nèi)編號(hào),從1開始。編號(hào)0默認(rèn)代表整個(gè)表達(dá)式??梢岳肻+ 編號(hào)的形式訪問對(duì)應(yīng)編號(hào)的匹配。例如:
<([>]*)>[<>]*\1> (?#匹配一對(duì)不含子標(biāo)簽的xml標(biāo)簽及里面的內(nèi)容)
在.Net中,可以用(?
當(dāng)然還有一些有意義的括號(hào),除了(?:exp)以外,都會(huì)帶有編號(hào)。下面是完整的分組說明:
| 代碼/語法 | 說明 |
| — | — |
| (exp) | 普通分組 |
| (?
| (?:exp) | 匹配字符串exp,但不為其分配組號(hào) |
零寬度斷言
何為斷言:斷言某個(gè)位置會(huì)出現(xiàn),或不會(huì)出現(xiàn)某個(gè)模式,但不去匹配這個(gè)模式。當(dāng)斷言不成功時(shí),不再匹配。
| 代碼/語法 | 說明 |
| — | — |
| (?=exp) | 匹配字符串exp前面的位置 |
| (?<=exp) | 匹配字符串exp后面的位置 |
| (?!exp) | 匹配后面不是字符串exp的位置 |
| (?
| (?>exp) | 只匹配exp一次 |
邏輯運(yùn)算符 或
| 代碼/語法 | 說明 |
| — | — |
| | | 邏輯或 |
遞歸匹配
這個(gè)和上面的分組命名不矛盾,這個(gè)就是那個(gè)部分的擴(kuò)展。
| 代碼/語法 | 說明 |
| — | — |
| (?exp) | 把匹配的內(nèi)容命名為name,入棧 |
| (?<-name>exp’) | 從棧中彈出一個(gè)內(nèi)容 |
| (?(name) yes | no) | 如果棧中存在名為name的內(nèi)容就匹配yes部分,否則匹配no部分,這里yes和no分別是2段表達(dá)式 |
運(yùn)算符優(yōu)先級(jí)
從上到下從高到低,同一高度順序運(yùn)算
| 優(yōu)先級(jí) |
| — |
| \ 轉(zhuǎn)義字符 |
| () , [] |
| * , + , ? , {n}, {n, } , {n, m} |
| ^ , $ , \元字符 |
| | |
常用的正則表達(dá)式
驗(yàn)證數(shù)字類型輸入
數(shù)字:^[0-9]*$ n位的數(shù)字:^\d{n}$ 至少n位的數(shù)字:^\d{n,}$ m-n位的數(shù)字:^\d{m,n}$ 零和非零開頭的數(shù)字:^(0|[1-9][0-9]*)$ 非零開頭的最多帶兩位小數(shù)的數(shù)字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 帶1-2位小數(shù)的正數(shù)或負(fù)數(shù):^(\-)?\d+(\.\d{1,2})?$ 正數(shù)、負(fù)數(shù)、和小數(shù):^(\-|\+)?\d+(\.\d+)?$ 有兩位小數(shù)的正實(shí)數(shù):^[0-9]+(.[0-9]{2})?$ 有1~3位小數(shù)的正實(shí)數(shù):^[0-9]+(.[0-9]{1,3})?$ 非零的正整數(shù):^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$ 非零的負(fù)整數(shù):^\-[1-9][]0-9″*$ 或 ^-[1-9]\d*$ 非負(fù)整數(shù):^\d+$ 或 ^[1-9]\d*|0$ 自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過,也去過華為、OPPO等大廠,18年進(jìn)入阿里一直到現(xiàn)在。
深知大多數(shù)前端工程師,想要提升技能,往往是自己摸索成長或者是報(bào)班學(xué)習(xí),但對(duì)于培訓(xùn)機(jī)構(gòu)動(dòng)則幾千的學(xué)費(fèi),著實(shí)壓力不小。自己不成體系的自學(xué)效果低效又漫長,而且極易碰到天花板技術(shù)停滯不前!
因此收集整理了一份《2024年Web前端開發(fā)全套學(xué)習(xí)資料》,初衷也很簡單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友,同時(shí)減輕大家的負(fù)擔(dān)。
既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗(yàn)的小伙伴深入學(xué)習(xí)提升的進(jìn)階課程,基本涵蓋了95%以上前端開發(fā)知識(shí)點(diǎn),真正體系化!
由于文件比較大,這里只是將部分目錄截圖出來,每個(gè)節(jié)點(diǎn)里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實(shí)戰(zhàn)項(xiàng)目、講解視頻,并且會(huì)持續(xù)更新!
如果你覺得這些內(nèi)容對(duì)你有幫助,可以掃碼獲?。。。▊渥ⅲ呵岸耍?/p>
最后
文章到這里就結(jié)束了,如果覺得對(duì)你有幫助可以點(diǎn)個(gè)贊哦,如果有需要前端校招面試題PDF完整版的朋友可以點(diǎn)擊這里即可獲取,包括答案解析。
包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實(shí)戰(zhàn)項(xiàng)目、講解視頻,并且會(huì)持續(xù)更新!**
如果你覺得這些內(nèi)容對(duì)你有幫助,可以掃碼獲?。。。▊渥ⅲ呵岸耍?/p>
最后
文章到這里就結(jié)束了,如果覺得對(duì)你有幫助可以點(diǎn)個(gè)贊哦,如果有需要前端校招面試題PDF完整版的朋友可以點(diǎn)擊這里即可獲取,包括答案解析。
[外鏈圖片轉(zhuǎn)存中…(img-Fw5SrNRr-1713350372565)]
柚子快報(bào)激活碼778899分享:正則表達(dá)式RegExp(1)
參考文章
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。