這篇文章主要為大家展示了“正則表達(dá)式字符集是什么”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“正則表達(dá)式字符集是什么”這篇文章吧。
成都創(chuàng)新互聯(lián)專注于甘井子企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,購物商城網(wǎng)站建設(shè)。甘井子網(wǎng)站建設(shè)公司,為甘井子等地區(qū)提供建站服務(wù)。全流程按需策劃,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
正則表達(dá)式字符集是由一對方括號“[]”括起來的正則表達(dá)式字符集合。使用正則表達(dá)式字符集,你可以告訴正則表達(dá)式引擎僅僅匹配多個(gè)字符中的一個(gè)。如果你想匹配一個(gè)“a”或一個(gè)“e”,使用﹤﹤[ae]﹥﹥。你可以使用﹤﹤gr[ae]y﹥﹥匹配gray或grey。這在你不確定你要搜索的字符是采用美國英語還是英國英語時(shí)特別有用。相反,﹤﹤gr[ae]y﹥﹥將不會(huì)匹配graay或graey。正則表達(dá)式字符集中的字符順序并沒有什么關(guān)系,結(jié)果都是相同的。
你可以使用連字符“-”定義一個(gè)字符范圍作為正則表達(dá)式字符集。﹤﹤[0-9]﹥﹥匹配0到9之間的單個(gè)數(shù)字。你可以使用不止一個(gè)范圍。﹤﹤[0-9a-fA-F] ﹥﹥匹配單個(gè)的十六進(jìn)制數(shù)字,并且大小寫不敏感。你也可以結(jié)合范圍定義與單個(gè)字符定義。﹤﹤[0-9a-fxA-FX]﹥﹥匹配一個(gè)十六進(jìn)制數(shù)字或字母X。再次強(qiáng)調(diào)一下,字符和范圍定義的先后順序?qū)Y(jié)果沒有影響。
◆正則表達(dá)式字符集的一些應(yīng)用
查找一個(gè)可能有拼寫錯(cuò)誤的單詞,比如﹤﹤sep[ae]r[ae]te﹥﹥ 或 ﹤﹤li[cs]en[cs]e﹥﹥。
查找程序語言的標(biāo)識符,﹤﹤A-Za-z_][A-Za-z_0-9]*﹥﹥。(*表示重復(fù)0或多次)
查找C風(fēng)格的十六進(jìn)制數(shù)﹤﹤0[xX][A-Fa-f0-9]+﹥﹥。(+表示重復(fù)一次或多次)
◆取反正則表達(dá)式字符集
在左方括號“[”后面緊跟一個(gè)尖括號“^”,將會(huì)對正則表達(dá)式字符集取反。結(jié)果是正則表達(dá)式字符集將匹配任何不在方括號中的字符。不像“.”,取反正則表達(dá)式字符集是可以匹配回車換行符的。
需要記住的很重要的一點(diǎn)是,取反正則表達(dá)式字符集必須要匹配一個(gè)字符。﹤﹤q[^u]﹥﹥并不意味著:匹配一個(gè)q,后面沒有u跟著。它意味著:匹配一個(gè)q,后面跟著一個(gè)不是u的字符。所以它不會(huì)匹配“Iraq”中的q,而會(huì)匹配“Iraq is a country”中的q和一個(gè)空格符。事實(shí)上,空格符是匹配中的一部分,因?yàn)樗且粋€(gè)“不是u的字符”。
如果你只想匹配一個(gè)q,條件是q后面有一個(gè)不是u的字符,我們可以用后面將講到的向前查看來解決。
◆正則表達(dá)式字符集中的元字符
需要注意的是,在正則表達(dá)式字符集中只有4個(gè) 字符具有特殊含義。它們是:“] \ ^ -”?!癩”代表正則表達(dá)式字符集定義的結(jié)束;“\”代表轉(zhuǎn)義;“^”代表取反;“-”代表范圍定義。其他常見的元字符在正則表達(dá)式字符集定義內(nèi)部都是正常字符,不需要轉(zhuǎn)義。例如,要搜索星號*或加號+,你可以用﹤﹤[+*]﹥﹥。當(dāng)然,如果你對那些通常的元字符進(jìn)行轉(zhuǎn)義,你的正則表達(dá)式一樣會(huì)工作得很好,但是這會(huì)降低可讀性。
在正則表達(dá)式字符集定義中為了將反斜杠“\”作為一個(gè)文字字符而非特殊含義的字符,你需要用另一個(gè)反斜杠對它進(jìn)行轉(zhuǎn)義。﹤﹤[\\x]﹥﹥將會(huì)匹配一個(gè)反斜杠和一個(gè)X。“]^-”都可以用反斜杠進(jìn)行轉(zhuǎn)義,或者將他們放在一個(gè)不可能使用到他們特殊含義的位置。我們推薦后者,因?yàn)檫@樣可以增加可讀性。比如對于字符“^”,將它放在除了左括號“[”后面的位置,使用的都是文字字符含義而非取反含義。如﹤﹤[x^]﹥﹥會(huì)匹配一個(gè)x或^。﹤﹤[]x]﹥﹥會(huì)匹配一個(gè)“]”或“x”。﹤﹤[-x]﹥﹥或﹤﹤[x-]﹥﹥都會(huì)匹配一個(gè)“-”或“x”。
◆正則表達(dá)式字符集的簡寫
因?yàn)橐恍┱齽t表達(dá)式字符集非常常用,所以有一些簡寫方式。
﹤﹤\d﹥﹥代表﹤﹤[0-9]﹥﹥;
﹤﹤\w﹥﹥代表單詞字符。這個(gè)是隨正則表達(dá)式實(shí)現(xiàn)的不同而有些差異。絕大多數(shù)的正則表達(dá)式實(shí)現(xiàn)的單詞正則表達(dá)式字符集都包含了﹤﹤A-Za-z0-9_]﹥﹥。
﹤﹤\s﹥﹥代表“白字符”。這個(gè)也是和不同的實(shí)現(xiàn)有關(guān)的。在絕大多數(shù)的實(shí)現(xiàn)中,都包含了空格符和Tab符,以及回車換行符﹤﹤\r\n﹥﹥。
正則表達(dá)式字符集的縮寫形式可以用在方括號之內(nèi)或之外。﹤﹤\s\d﹥﹥匹配一個(gè)白字符后面緊跟一個(gè)數(shù)字。﹤﹤[\s\d]﹥﹥匹配單個(gè)白字符或數(shù)字。﹤﹤[\da-fA-F]﹥﹥將匹配一個(gè)十六進(jìn)制數(shù)字。
取反正則表達(dá)式字符集的簡寫
﹤﹤[\S]﹥﹥ = ﹤﹤[^\s]﹥﹥ ﹤﹤[\W]﹥﹥ = ﹤﹤[^\w]﹥﹥ ﹤﹤[\D]﹥﹥ = ﹤﹤[^\d]﹥﹥
◆正則表達(dá)式字符集的重復(fù)
如果你用“?*+”操作符來重復(fù)一個(gè)正則表達(dá)式字符集,你將會(huì)重復(fù)整個(gè)正則表達(dá)式字符集。而不僅是它匹配的那個(gè)字符。正則表達(dá)式﹤﹤[0-9]+﹥﹥會(huì)匹配837以及222。
如果你僅僅想重復(fù)被匹配的那個(gè)字符,可以用向后引用達(dá)到目的。我們以后將講到向后引用。
以上是“正則表達(dá)式字符集是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!