最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

正則表達(dá)式基礎(chǔ)學(xué)習(xí)一文入門

 更新時(shí)間:2023年03月23日 15:09:21   作者:stark張宇  
這篇文章主要為大家介紹了正則表達(dá)式基礎(chǔ)學(xué)習(xí)一文入門詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

正則表達(dá)式是什么

校驗(yàn)數(shù)據(jù)的有效性、查找符合要求的文本以及對(duì)文本進(jìn)行切割和替換等操作。正則表達(dá)式的目的是真正的強(qiáng)大之處就在于可以查找符合某個(gè)規(guī)則的文本。

元字符

1.特殊字符串

  • . 除換行符外任意字符
  • \d 表示任意單個(gè)數(shù)字
  • \w 表示任意單個(gè)數(shù)字或字母或下劃線
  • \s 表示任意單個(gè)空白符

\D \W \S,意思正相反。

2.空白符

  • \r 回車符
  • \n 換行符
  • \f 換頁符
  • \t 制表符
  • \v 垂直制表符
  • \s 任意空白符

3.量詞

  • * 代表0次到多次
  • + 1次到多次
  • ? 0到1次
  • {m} 出現(xiàn)m次
  • {m,} 出現(xiàn)至少m次
  • {m,n} m到n次

4.范圍

  • |或 ,如ab|bc代表ab或bc
  • [...] 多選一,括號(hào)中任意單個(gè)元素
  • [a-z] 匹配a-z之間任意單個(gè)元素
  • [^..] 取反,不能包括括號(hào)中的任意單個(gè)元素

貪婪匹配、非貪婪匹配和獨(dú)占模式

  • 貪婪模式的特點(diǎn)就是盡可能進(jìn)行最大長度匹配
  • 非貪婪模式會(huì)盡可能短地去匹配。
  • 獨(dú)占模式和貪婪模式很像,獨(dú)占模式會(huì)盡可能多地去匹配,如果匹配失敗就結(jié)束,不會(huì)進(jìn)行回溯,這樣的話就比較節(jié)省時(shí)間。具體的方法就是在量詞后面加上加號(hào)(+),例如xy{1,3}+yz

注意: Python 和 Go 的標(biāo)準(zhǔn)庫目前都不支持獨(dú)占模式。

(“.+?”)|\w{2,6}

分組和引用

如圖所示的正則,將日期和時(shí)間都括號(hào)括起來。這個(gè)正則中一共有兩個(gè)分組,日期是第 1 個(gè),時(shí)間是第 2 個(gè)。

1.不保存子組

分組的作用就是后續(xù)可能還會(huì)被引用到,但是如果不需要引用的時(shí)候可以添加不保存子組,表達(dá)式(?:xxx),優(yōu)點(diǎn)是正則性能會(huì)更好,在子組計(jì)數(shù)時(shí)也更不容易出錯(cuò)。

2.括號(hào)嵌套

四種匹配模式

1.不區(qū)分大小寫模式(Case-Insensitive)

不區(qū)分大小寫模式,正則表達(dá)式(?i)cat,這樣匹配的字符就不區(qū)分大小寫了

如果我們想要前面匹配上的結(jié)果,和第二次重復(fù)時(shí)的大小寫一致,那該怎么做呢?我們只需要用括號(hào)把修飾符和正則 cat 部分括起來,加括號(hào)相當(dāng)于作用范圍的限定,讓不區(qū)分大小寫只作用于這個(gè)括號(hào)里的內(nèi)容。正則表達(dá)式((?i)cat)

2.點(diǎn)號(hào)通配模式(Dot All)

元字符里講.可以匹配除了換行以外的任何元素,用單行模式中使用.,正則表示式(?s).

3.多行匹配模式

多行模式的表達(dá)式(?m)^...|...$,這樣的匹配好處是每一行

4.注釋模式

略...

斷言

斷言是指對(duì)匹配到的文本位置有要求。

1.單詞邊界

在準(zhǔn)確匹配單詞時(shí),我們使用 \b...\b 就可以實(shí)現(xiàn)了,也可以指定表達(dá)式的開頭和結(jié)尾^...$

2.環(huán)視

環(huán)視的主要是定義清晰的邊界。

  • (?<=Y),左邊是Y
  • (?<=!Y),左邊不是Y
  • (?=Y),右邊是Y
  • (?!Y),右邊不是Y

左尖括號(hào)代表看左邊,沒有尖括號(hào)是看右邊,感嘆號(hào)是非的意思。

常用正則Demo

正則表達(dá)式用于字符串處理、表單驗(yàn)證等場(chǎng)合,實(shí)用高效?,F(xiàn)將一些常用的表達(dá)式收集于此,以備不時(shí)之需。

  • 匹配中文字符的正則表達(dá)式: [u4e00-u9fa5]
  • 匹配雙字節(jié)字符(包括漢字在內(nèi)):[^x00-xff]
  • 匹配空白行的正則表達(dá)式:ns*r
  • 匹配HTML標(biāo)記的正則表達(dá)式:<(S*?)[^>]*>.*?|<.*? />
  • 匹配首尾空白字符的正則表達(dá)式:^s*|s*$
  • 匹配Email地址的正則表達(dá)式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
  • 匹配網(wǎng)址URL的正則表達(dá)式:[a-zA-z]+://[^s]*
  • 匹配帳號(hào)是否合法(字母開頭,允許5-16字節(jié),允許字母數(shù)字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
  • 匹配國內(nèi)電話號(hào)碼:d{3}-d{8}|d{4}-d{7}( 匹配形式如 0511-4405222 或 021-87888822)
  • 匹配中國郵政編碼:[1-9]d{5}(?!d)
  • 匹配身份證:d{15}|d{18}

2.匹配特定數(shù)字:

  • 匹配正整數(shù) ^[1-9]d*$ 
  • 匹配負(fù)整數(shù) ^-[1-9]d*$
  • 匹配整數(shù) ^-?[1-9]d*$
  • 匹配非負(fù)整數(shù)(正整數(shù) + 0)^[1-9]d*|0$
  • 匹配非正整數(shù)(負(fù)整數(shù) + 0)^-[1-9]d*|0$
  • 匹配正浮點(diǎn)數(shù) ^[1-9]d*.d*|0.d*[1-9]d*$
  • 匹配負(fù)浮點(diǎn)數(shù) ^-([1-9]d*.d*|0.d*[1-9]d*)$
  • 匹配浮點(diǎn)數(shù) ^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$
  • 匹配非負(fù)浮點(diǎn)數(shù)(正浮點(diǎn)數(shù) +0) ^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$
  • 匹配非正浮點(diǎn)數(shù)(負(fù)浮點(diǎn)數(shù) + 0) ^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$ 

3.匹配特定字符串:

  • 匹配由26個(gè)英文字母組成的字符串 ^[A-Za-z]+$
  • 匹配由26個(gè)英文字母的大寫組成的字符串 ^[A-Z]+$ 
  • 匹配由26個(gè)英文字母的小寫組成的字符串 ^[a-z]+$ 
  • 匹配由數(shù)字和26個(gè)英文字母組成的字符串 ^[A-Za-z0-9]+$  
  • 匹配由數(shù)字、26個(gè)英文字母或者下劃線組成的字符串 ^w+$  
  • 只能輸入數(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í)數(shù):^[0-9]+(.[0-9]{2})?$
  • 只能輸入有1-3位小數(shù)的正實(shí)數(shù):^[0-9]+(.[0-9]{1,3})?$
  • 只能輸入非零的正整數(shù):^+?[1-9][0-9]*$
  • 只能輸入非零的負(fù)整數(shù):^-[1-9][0-9]*$
  • 只能輸入長度為3的字符:^.{3}$
  • 只能輸入由26個(gè)英文字母組成的字符串:^[A-Za-z]+$
  • 只能輸入由26個(gè)大寫英文字母組成的字符串:^[A-Z]+$
  • 只能輸入由26個(gè)小寫英文字母組成的字符串:^[a-z]+$
  • 只能輸入由數(shù)字和26個(gè)英文字母組成的字符串:^[A-Za-z0-9]+$
  • 只能輸入由數(shù)字、26個(gè)英文字母或者下劃線組成的字符串:^w+$
  • 驗(yàn)證用戶密碼:^[a-zA-Z]w{5,17}$正確格式為:以字母開頭,長度在6-18之間,
  • 只能包含字符、數(shù)字和下劃線。
  • 驗(yàn)證是否含有^%&'',;=?"等字符:`[^%&'',;=?x22]+`
  • 只能輸入漢字:^[u4e00-u9fa5],{0,}$
  • 驗(yàn)證Email地址:^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$
  • 驗(yàn)證InternetURL:^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$
  • 驗(yàn)證電話號(hào)碼:^((d{3,4})|d{3,4}-)?d{7,8}$

以上就是正則表達(dá)式基礎(chǔ)學(xué)習(xí)一文入門的詳細(xì)內(nèi)容,更多關(guān)于正則表達(dá)式基礎(chǔ)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 正則表達(dá)式的語法

    正則表達(dá)式的語法

    正則表達(dá)式(regular expression)描述了一種字符串匹配的模式,可以用來檢查一個(gè)串是否含有某種子串、將匹配的子串做替換或者從某個(gè)串中取出符合某個(gè)條件的子串等
    2006-09-09
  • Linux中基本正則表達(dá)式

    Linux中基本正則表達(dá)式

    這篇文章主要介紹了Linux中基本正則表達(dá)式的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-12-12
  • PHP正則表達(dá)式的效率 回溯與固化分組

    PHP正則表達(dá)式的效率 回溯與固化分組

    上文中,我們聊到了一點(diǎn)關(guān)于PHP中(NFA PCRE)正則表達(dá)式匹配優(yōu)先量詞,忽略優(yōu)先量詞的匹配原理了。那么上文留下的問題,您的答案是什么呢?
    2011-04-04
  • js正則表達(dá)式學(xué)習(xí)和總結(jié)(必看篇)

    js正則表達(dá)式學(xué)習(xí)和總結(jié)(必看篇)

    下面小編就為大家?guī)硪黄猨s正則表達(dá)式學(xué)習(xí)和總結(jié)(必看篇)。小編覺得挺不錯(cuò)的,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧,祝大家游戲愉快哦
    2016-11-11
  • js使用正則子表達(dá)式匹配首字母與尾字母相同單詞的方法

    js使用正則子表達(dá)式匹配首字母與尾字母相同單詞的方法

    這篇文章主要介紹了js使用正則子表達(dá)式匹配首字母與尾字母相同單詞的方法,可實(shí)現(xiàn)將多行文本框中首位字母相同的單詞進(jìn)行匹配的功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-01-01
  • 使用正則表達(dá)式屏蔽關(guān)鍵字的方法

    使用正則表達(dá)式屏蔽關(guān)鍵字的方法

    關(guān)鍵字屏蔽是社交類軟件必做的功能,當(dāng)我們熟悉正則的時(shí)候,我們完全用正則來過濾掉用戶輸入的空格,而且用正則可以過濾掉任意位置的空格,具體正則屏蔽關(guān)鍵字的方法大家可以參考下本文
    2017-07-07
  • IP 正則表達(dá)式驗(yàn)證

    IP 正則表達(dá)式驗(yàn)證

    今天學(xué)習(xí)了正則表達(dá)式,覺得非常實(shí)用,而且現(xiàn)在各種編程語言和應(yīng)用軟件如Word、MySQL等等也都內(nèi)置了正則引擎。
    2008-12-12
  • javascript中基于replace函數(shù)的正則表達(dá)式語法

    javascript中基于replace函數(shù)的正則表達(dá)式語法

    replace()最js中比較簡(jiǎn)單的字符替換函數(shù),但是它也是可以跟正則結(jié)合實(shí)現(xiàn)強(qiáng)大的字符替換效果。
    2011-02-02
  • 前端常用正則表達(dá)式匯總

    前端常用正則表達(dá)式匯總

    對(duì)于正則表達(dá)式,我們或許會(huì)經(jīng)常使用,但是又很難記住。這篇文章,我將介紹下簡(jiǎn)單的正則表達(dá)式知識(shí),然后總結(jié)前端開發(fā)中常用的正則表達(dá)式大全,需要的的朋友參考下
    2017-07-07
  • 分享一組開源的匹配中國大陸手機(jī)號(hào)碼的正則表達(dá)式

    分享一組開源的匹配中國大陸手機(jī)號(hào)碼的正則表達(dá)式

    這篇文章主要介紹了分享一組開源的匹配中國大陸手機(jī)號(hào)碼的正則表達(dá)式。文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06

最新評(píng)論

巴彦淖尔市| 西平县| 南川市| 宾川县| 榆林市| 湘潭县| 柘城县| 蛟河市| 潞城市| 绵阳市| 清丰县| 宁陕县| 会宁县| 泗洪县| 曲麻莱县| 铜陵市| 自贡市| 滕州市| 墨竹工卡县| 元谋县| 昭苏县| 辉南县| 浙江省| 莆田市| 资源县| 宾阳县| 凤山县| 滨州市| 鄢陵县| 青冈县| 漳州市| 怀仁县| 富平县| 上林县| 万年县| 大埔县| 江北区| 涞水县| 大荔县| 朝阳区| 曲松县|