国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

正則表達(dá)式概念以及語法的使用

這篇具有很好參考價(jià)值的文章主要介紹了正則表達(dá)式概念以及語法的使用。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

1.概念

2. 為什么使用正則表達(dá)式?

3. 語法

1.普通字符

非打印字符

2. 特殊字符

3. 限定符

4. 定位符

5. 運(yùn)算優(yōu)先級(jí)

3.匹配規(guī)則

1. 基本模式匹配

2. 字符簇

3. 確定重復(fù)出現(xiàn)


1.概念

正則表達(dá)式(Regular Expression)是一種文本模式,包括普通字符(例如,a 到 z 之間的字母)
和特殊字符(稱為"元字符"),正則表達(dá)式使用單個(gè)字符串來描述、匹配一系列匹配某個(gè)句法規(guī)則的字符串。

2. 為什么使用正則表達(dá)式?

典型的搜索和替換操作要求您提供與預(yù)期的搜索結(jié)果匹配確切文本,雖然這種技術(shù)對(duì)于對(duì)
靜態(tài)文本執(zhí)行簡(jiǎn)單搜索和替換任務(wù)可能已經(jīng)足夠了,但它缺乏靈活性,若采用這種方法搜索
動(dòng)態(tài)文本,即使不是不可能,至少也會(huì)變得很困難。

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

正則表達(dá)式可以靈活的匹配到 通用字符,它一般用在測(cè)試密碼框,賬號(hào)框等輸入框中的字符是否匹配。

3. 語法

正則表達(dá)式是由普通字符(例如字符 a 到 z)以及特殊字符(稱為"元字符")組成的文字
模式

1.普通字符

普通字符包括大寫和小寫字母所有數(shù)字、所有標(biāo)點(diǎn)符號(hào)以及非打印字符和一些其他符號(hào)。

非打印字符

正則表達(dá)式概念以及語法的使用,正則表達(dá)式

?

2. 特殊字符

特殊字符就是一些有特殊含義的字符,如下

正則表達(dá)式概念以及語法的使用,正則表達(dá)式

?

3. 限定符

+ 號(hào)代表前面的字符必須至少出現(xiàn)一次(1 次或多次)

sjp+,可以匹配 sjp、sjpp、sjppp等,

* 號(hào)代表前面的字符可以不出現(xiàn),也可以出現(xiàn)一次或者多次

sjp*,可以匹配sj、sjp、sjpp 等,(0 次、或 1 次、或多次)?

? 問號(hào)代表前面的字符最多只可以出現(xiàn)一次(0 次、或 1 次)??

sjp? 只能 匹配 sj 或者 sjp?

{n}, n 是一個(gè)非負(fù)整數(shù)。匹配確定的 n 次。

例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的兩個(gè) o

{n,},n 是一個(gè)非負(fù)整數(shù)。至少匹配 n 次

?o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等價(jià)于'o+'。'o{0,}' 則等價(jià)于 'o*'。

{n,m},m 和 n 均為非負(fù)整數(shù),其中 n <= m。最少匹配 n 次且最多匹配 m 次?

最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 將匹配"fooooood" 中的前三個(gè) o

?

4. 定位符

正則表達(dá)式概念以及語法的使用,正則表達(dá)式

注意:不能將限定符與定位符一起使用。由于在緊靠換行或者單詞邊界的前面或后面不能有
一個(gè)以上位置,因此不允許諸如 ^* 之類的表達(dá)式?

5. 運(yùn)算優(yōu)先級(jí)

正則表達(dá)式從左到右進(jìn)行計(jì)算,并遵循優(yōu)先級(jí)順序,這與算術(shù)表達(dá)式非常類似。
相同優(yōu)先級(jí)的從左到右進(jìn)行運(yùn)算,不同優(yōu)先級(jí)的運(yùn)算先高后低。下表從最高到最低說明了各
種正則表達(dá)式運(yùn)算符的優(yōu)先級(jí)順序:

正則表達(dá)式概念以及語法的使用,正則表達(dá)式

?

3.匹配規(guī)則

1. 基本模式匹配

模式,是正則表達(dá)式最基本的元素,它們是一組描述字符串特征的字符。模式可以很簡(jiǎn)單,由普通的字符串組成,也可以非常復(fù)雜,往往用特殊的字符表示一個(gè)范圍內(nèi)的字符、重復(fù)出現(xiàn),或表示上下文。

  • ^ 符號(hào)用來匹配那些以給定模式開頭的字符串
^once
/*
這個(gè)模式 包含一個(gè)特殊的字符^,表示該模式只匹配那些以 once 開頭的字符串。
例如 該模式與字符串"once upon a time"匹配,與"There once was a man from NewYork"
不匹配。正如如^符號(hào)表示開頭一樣.
*/
  • $符號(hào)用來匹配那些以給定模式結(jié)尾的字符串
bucket$
/*
這個(gè)模式與"Who kept all of this cash in a bucket"匹配,與"buckets"不匹配。字符 ^ 和 $ 同
時(shí)使用時(shí),表示精確匹配(字符串與模式一樣)
*/
^bucket$
/*
這個(gè)模式只匹配字符串"bucket"
*/

如果一個(gè)模式不包括^和$,那么它與任何包含該模式的字符串匹配。
例如:

模式:once

字符串:There once was a man from NewYork,Who kept all of his cash in a bucket.? 匹配

2. 字符簇

正則表達(dá)式通常用來驗(yàn)證用戶的輸入。當(dāng)用戶提交一個(gè) 表單以后,要判斷輸入的電話號(hào)碼、地址、EMAIL 地址、信用卡號(hào)碼等是否有效,用普通的基于字面的字符是不夠的。 所以就需要用字符簇來表示。

要建立一個(gè)表示所有元音字符的字符簇,就把所有的元音字符放在一個(gè)方括號(hào)里

[AaEeIiOoUu]

這個(gè)模式與任何元音字符匹配,但只能表示一個(gè)字符,用連字號(hào)可以表示一個(gè)字符的范圍:

[a-z] //匹配所有的小寫字母
[A-Z] //匹配所有的大寫字母
[a-zA-Z] //匹配所有的字母
[0-9] //匹配所有的數(shù)字
[0-9\.\-] //匹配所有的數(shù)字,句號(hào)和減號(hào)
[ \f\r\t\n] //匹配所有的白字符

這些也只表示一個(gè)字符。如果要匹配一個(gè)由一個(gè)小寫字母和一位數(shù)字組成的字符串

比如"z2"、"t6"或"g7",但不是"ab2"、"r2d3" 或"b52"的話,用這個(gè)
模式:

^[a-z][0-9]$

盡管[a-z]代表 26 個(gè)字母的范圍,但在這里它只能與第一個(gè)字符是小寫字母的字符串匹配。

上面提到^表示字符串的開頭,但它還有另外一個(gè)含義。當(dāng)在一組方括號(hào)里使用 ^ 時(shí),
它表示"非"或"排除"的意思
,常常用來剔除某個(gè)字符?:

還用前面的例子,我們要求第一個(gè)字符不能是數(shù)字:

^[^0-9][0-9]$

這個(gè)模式與"&5"、"g7"及"-2"是匹配的,但與 "12"、"66" 是不匹配的。下面是幾個(gè)排除特定字
符的例子:

[^a-z] //除了小寫字母以外的所有字符

3. 確定重復(fù)出現(xiàn)

如果一個(gè)單詞有若干個(gè)字母組成,一組數(shù)字有若干個(gè)單數(shù)組成。跟在字符或字符簇后面的花括號(hào)({})用來確定前面的內(nèi)容的重復(fù)出現(xiàn)的次數(shù)

如下:

^a{4}$  // aaaa
^a{2,4}$  //aa aaa aaaa
^a{2,}$  // aa ,aaa aaa等多個(gè)a
^a{2,}  //aardvark 和 aaab可以, apple不行
a{2,}  //baad aaaa可以,但Nantucket不行 
.{2}   //匹配所有的兩個(gè)字符
\t{2}  //兩個(gè)字表符

更多的單詞和數(shù)字的匹配:

^[a-zA-Z0-9_]{1,}$ // 所有包含一個(gè)以上的字母、數(shù)字或下劃線的字符串
^[1-9][0-9]{0,}$ // 所有的正整數(shù)
  • [1-9] 表示 可以從中 1-9選中一個(gè)字符
  • [0-9]{0,} 表示可以從0~9中選擇任意個(gè)字符。
^\-{0,1}[0-9]{1,}$ //所有整數(shù)

\-{0,1}:表示可以匹配0個(gè)或者1個(gè) " -" 符號(hào)

[0-9]{1,}:表示可以匹配1個(gè)以上的 0-9數(shù)字文章來源地址http://www.zghlxwxcb.cn/news/detail-566473.html

^\-?[0-9]{1,}\.?[0-9]{1,}$ //所有的浮點(diǎn)數(shù)

到了這里,關(guān)于正則表達(dá)式概念以及語法的使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

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

    ?????? 目錄 一、基本的正則表達(dá)式語法 1.1 字符類 1.2?單個(gè)字符的特殊表示 1.3 量詞表示 ?1.4?邊界匹配 1.5?分組與捕獲 ?二 、java中的使用 ??在Java中使用正則表達(dá)式進(jìn)行字符串匹配可以說是一個(gè)很重要的技能,尤其對(duì)于需要進(jìn)行文本處理或者字符替換的程序來說,更是必

    2024年04月28日
    瀏覽(48)
  • sed中使用正則表達(dá)式進(jìn)行替換以及注意事項(xiàng)

    sed中使用正則表達(dá)式進(jìn)行替換的時(shí)候,一定要注意,有些特殊字符在使用時(shí)要轉(zhuǎn)義,目前發(fā)現(xiàn)的有: 用于分組的小括號(hào):(),在使用時(shí)要用進(jìn)行轉(zhuǎn)義,但是匹配字符串中真正的小括號(hào)時(shí),無需轉(zhuǎn)義; 表示前面的表達(dá)式出現(xiàn)次數(shù)的{},也要轉(zhuǎn)義; 表示前面的表達(dá)式出現(xiàn)1次或多

    2023年04月22日
    瀏覽(25)
  • Java 正則表達(dá)式【基本語法】

    首先我們需要了解的是正則表達(dá)式中的各種元字符的功能,主要分為以下幾種: 限定符 選擇匹配符 分組組合和反向引用符 特殊字符 字符匹配符 定位符 需要注意的是:在 Java正則表達(dá)式中,兩個(gè)斜杠 \\\\ 相當(dāng)于其它語言中的一個(gè)斜杠 。 符號(hào) 含義 示例 解釋 [ ] 可以匹配的字

    2024年02月13日
    瀏覽(16)
  • javaScript基礎(chǔ)語法之正則表達(dá)式

    表達(dá)式 描述 [0-9] 查找任何從 0 至 9 的數(shù)字。例如,匹配: \\\'111\\\' ,不匹配:\\\'eee\\\' [abc] 查找方括號(hào)之間的任何字符。例如,/[123]/ 匹配 \\\"1234567\\\" 中的 \\\"123\\\",\\\"1\\\" 中的 \\\"1\\\"。但是不匹配 \\\"4567890\\\"。 [^abc] 查找任何不在方括號(hào)之間的字符。例如,/[^123]/ 匹配 \\\"4567890\\\" 中的 \\\"4567890\\\"。但是不匹

    2024年02月09日
    瀏覽(54)
  • Python高級(jí)語法與正則表達(dá)式

    Python提供了 with 語句的寫法,既簡(jiǎn)單又安全。 文件操作的時(shí)候使用with語句可以自動(dòng)調(diào)用關(guān)閉文件操作,即使出現(xiàn)異常也會(huì)自動(dòng)關(guān)閉文件操作。 生成器推導(dǎo)式 與列表推導(dǎo)式類似,只不過生成器推導(dǎo)式使用小括號(hào) 。 next 函數(shù)獲取生成器中的下一個(gè)值 for ?循環(huán)遍歷生成器中的每

    2024年02月04日
    瀏覽(25)
  • 【JavaScript_2】語法、標(biāo)準(zhǔn)庫、正則表達(dá)式

    1、強(qiáng)制轉(zhuǎn)換 使用Number函數(shù),可以將任意類型的值轉(zhuǎn)化成數(shù)值。 Number函數(shù)將字符串轉(zhuǎn)為數(shù)值,要比parseInt函數(shù)嚴(yán)格很多。基本上,只要有一個(gè)字符無法轉(zhuǎn)成數(shù)值,整個(gè)字符串就會(huì)被轉(zhuǎn)為NaN。 上面代碼中,parseInt逐個(gè)解析字符,而Number函數(shù)整體轉(zhuǎn)換字符串的類型。 另外,parseI

    2024年02月13日
    瀏覽(32)
  • 【Golang】Perl 正則表達(dá)式語法的支持示例

    在 Golang 中,標(biāo)準(zhǔn)庫的正則表達(dá)式包 regexp 是基于 RE2 語法的,并不直接支持 Perl 正則表達(dá)式的全部功能。雖然 Golang 的標(biāo)準(zhǔn)庫并不直接提供對(duì) Perl 正則表達(dá)式的支持,但是您可以使用第三方庫來實(shí)現(xiàn)與 Perl 兼容的正則表達(dá)式功能。 一個(gè)常用的第三方庫是 github.com/dlclark/regexp2

    2024年01月17日
    瀏覽(53)
  • 【23JavaScript 正則表達(dá)式】深入解析JavaScript正則表達(dá)式:基礎(chǔ)概念、常用方法和實(shí)例詳解,輕松掌握強(qiáng)大的文本模式匹配工具

    正則表達(dá)式是一種強(qiáng)大的文本模式匹配工具,用于在字符串中搜索和操作特定的文本模式。在JavaScript中,正則表達(dá)式提供了一種靈活的方式來處理字符串操作。 在JavaScript中,可以通過使用字面量表示法或RegExp對(duì)象來創(chuàng)建正則表達(dá)式。 字面量表示法 RegExp對(duì)象 JavaScript中的正則

    2024年02月08日
    瀏覽(28)
  • Java-初識(shí)正則表達(dá)式 以及 練習(xí)

    Java-初識(shí)正則表達(dá)式 以及 練習(xí)

    目錄 什么是正則表達(dá)式? 1. 正則表達(dá)式---字符類(一個(gè)大括號(hào)匹配一個(gè)字符): 2. 正則表達(dá)式---預(yù)字符類(也是匹配一個(gè)字符): 正則表達(dá)式---數(shù)量詞 (可以匹配多個(gè)字符): 正則表達(dá)式的練習(xí) 1: 習(xí)題一: 習(xí)題二: 習(xí)題三: 正則表達(dá)式的練習(xí) 2: 習(xí)題一: 習(xí)題二:

    2024年01月19日
    瀏覽(21)
  • 正則表達(dá)式-分組括號(hào)以及捕獲分組

    正則表達(dá)式-分組括號(hào)以及捕獲分組

    在java正則表達(dá)式中,( )是分組的意思,每組都有一個(gè)組號(hào) 只看左括號(hào),不看右括號(hào),按照左括號(hào)的順序,從左往右,依次為第一組,第二組,第三組等等,如圖: 根據(jù)左括號(hào)分成了三組 捕獲分組,非捕獲分組 可以獲取某一組中的內(nèi)容反復(fù)使用 規(guī)則: 正則表達(dá)式內(nèi)部使

    2024年01月22日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包