正則表達式

正則表達式是一種文本模式叁巨,包括普通字符(例如归园,a 到 z 之間的字母)和特殊字符(稱為“元字符”)。模式描述在搜索文本時要匹配的一個或多個字符串随闪。

正則表達式示例

表達式

匹配

/^\s*$/

匹配空行滑绒。

/\d{2}-\d{5}/

驗證由兩位數(shù)字闷堡、一個連字符再加 5 位數(shù)字組成的 ID 號。

/<\s*(\S+)(\s[^>]*)?>[\s\S]*<\s*\/\1\s*>/

匹配 HTML 標記疑故。

下表包含了元字符的完整列表以及它們在正則表達式上下文中的行為:

字符

說明

\

將下一字符標記為特殊字符杠览、文本、反向引用或八進制轉(zhuǎn)義符纵势。例如踱阿,“n”匹配字符“n”∏仗“\n”匹配換行符软舌。序列“\\”匹配“\”,“\(”匹配“(”牛曹。

^

匹配輸入字符串開始的位置佛点。如果設(shè)置了RegExp對象的Multiline屬性,^ 還會與“\n”或“\r”之后的位置匹配黎比。

$

匹配輸入字符串結(jié)尾的位置超营。如果設(shè)置了RegExp對象的Multiline屬性,$ 還會與“\n”或“\r”之前的位置匹配焰手。

*

零次或多次匹配前面的字符或子表達式糟描。例如,zo* 匹配“z”和“zoo”书妻。* 等效于 {0,}船响。

+

一次或多次匹配前面的字符或子表達式。例如躲履,“zo+”與“zo”和“zoo”匹配见间,但與“z”不匹配。+ 等效于 {1,}工猜。

?

零次或一次匹配前面的字符或子表達式米诉。例如,“do(es)?”匹配“do”或“does”中的“do”篷帅。? 等效于 {0,1}史侣。

{n}

n是非負整數(shù)拴泌。正好匹配n次。例如惊橱,“o{2}”與“Bob”中的“o”不匹配蚪腐,但與“food”中的兩個“o”匹配。

{n,}

n是非負整數(shù)税朴。至少匹配n次回季。例如,“o{2,}”不匹配“Bob”中的“o”正林,而匹配“foooood”中的所有 o泡一。“o{1,}”等效于“o+”觅廓”侵遥“o{0,}”等效于“o*”。

{n,m}

Mn是非負整數(shù)杈绸,其中n<=m粥烁。匹配至少n次,至多m次蝇棉。例如,“o{1,3}”匹配“fooooood”中的頭三個 o芥永。'o{0,1}' 等效于 'o?'篡殷。注意:您不能將空格插入逗號和數(shù)字之間。

?

當此字符緊隨任何其他限定符(*埋涧、+板辽、?、{n}棘催、{n,}劲弦、{n,m})之后時,匹配模式是“非貪心的”醇坝∫毓颍“非貪心的”模式匹配搜索到的、盡可能短的字符串呼猪,而默認的“貪心的”模式匹配搜索到的画畅、盡可能長的字符串。例如宋距,在字符串“oooo”中轴踱,“o+?”只匹配單個“o”,而“o+”匹配所有“o”谚赎。

.

匹配除“\n”之外的任何單個字符淫僻。若要匹配包括“\n”在內(nèi)的任意字符诱篷,請使用諸如“[\s\S]”之類的模式。

(pattern)

匹配pattern并捕獲該匹配的子表達式雳灵∽厮可以使用$0…$9屬性從結(jié)果“匹配”集合中檢索捕獲的匹配。若要匹配括號字符 ( )细办,請使用“\(”或者“\)”橙凳。

(?:pattern)

匹配pattern但不捕獲該匹配的子表達式,即它是一個非捕獲匹配笑撞,不存儲供以后使用的匹配岛啸。這對于用“or”字符 (|) 組合模式部件的情況很有用。例如茴肥,'industr(?:y|ies) 是比 'industry|industries' 更經(jīng)濟的表達式坚踩。

(?=pattern)

執(zhí)行正向預(yù)測先行搜索的子表達式,該表達式匹配處于匹配pattern的字符串的起始點的字符串瓤狐。它是一個非捕獲匹配瞬铸,即不能捕獲供以后使用的匹配。例如础锐,'Windows (?=95|98|NT|2000)' 匹配“Windows 2000”中的“Windows”嗓节,但不匹配“Windows 3.1”中的“Windows”。預(yù)測先行不占用字符皆警,即發(fā)生匹配后拦宣,下一匹配的搜索緊隨上一匹配之后,而不是在組成預(yù)測先行的字符后信姓。

(?!pattern)

執(zhí)行反向預(yù)測先行搜索的子表達式鸵隧,該表達式匹配不處于匹配pattern的字符串的起始點的搜索字符串。它是一個非捕獲匹配意推,即不能捕獲供以后使用的匹配豆瘫。例如,'Windows (?!95|98|NT|2000)' 匹配“Windows 3.1”中的 “Windows”菊值,但不匹配“Windows 2000”中的“Windows”外驱。預(yù)測先行不占用字符,即發(fā)生匹配后俊性,下一匹配的搜索緊隨上一匹配之后略步,而不是在組成預(yù)測先行的字符后。

x|y

匹配xy定页。例如趟薄,'z|food' 匹配“z”或“food”。'(z|f)ood' 匹配“zood”或“food”典徊。

[xyz]

字符集杭煎。匹配包含的任一字符恩够。例如,“[abc]”匹配“plain”中的“a”羡铲。

[^xyz]

反向字符集蜂桶。匹配未包含的任何字符。例如也切,“[^abc]”匹配“plain”中的“p”扑媚。

[a-z]

字符范圍。匹配指定范圍內(nèi)的任何字符雷恃。例如疆股,“[a-z]”匹配“a”到“z”范圍內(nèi)的任何小寫字母。

[^a-z]

反向范圍字符倒槐。匹配不在指定的范圍內(nèi)的任何字符旬痹。例如,“[^a-z]”匹配任何不在“a”到“z”范圍內(nèi)的任何字符讨越。

\b

匹配一個字邊界两残,即字與空格間的位置。例如把跨,“er\b”匹配“never”中的“er”人弓,但不匹配“verb”中的“er”。

\B

非字邊界匹配着逐∑贝樱“er\B”匹配“verb”中的“er”,但不匹配“never”中的“er”滨嘱。

\cx

匹配x指示的控制字符。例如浸间,\cM 匹配 Control-M 或回車符太雨。x的值必須在 A-Z 或 a-z 之間。如果不是這樣魁蒜,則假定 c 就是“c”字符本身囊扳。

\d

數(shù)字字符匹配。等效于 [0-9]兜看。

\D

非數(shù)字字符匹配锥咸。等效于 [^0-9]。

\f

換頁符匹配细移。等效于 \x0c 和 \cL搏予。

\n

換行符匹配。等效于 \x0a 和 \cJ弧轧。

\r

匹配一個回車符雪侥。等效于 \x0d 和 \cM碗殷。

\s

匹配任何空白字符,包括空格速缨、制表符锌妻、換頁符等。與 [?\f\n\r\t\v] 等效旬牲。

\S

匹配任何非空白字符仿粹。與 [^?\f\n\r\t\v] 等效。

\t

制表符匹配原茅。與 \x09 和 \cI 等效吭历。

\v

垂直制表符匹配。與 \x0b 和 \cK 等效员咽。

\w

匹配任何字類字符毒涧,包括下劃線。與“[A-Za-z0-9_]”等效贝室。

\W

與任何非單詞字符匹配契讲。與“[^A-Za-z0-9_]”等效。

\xn

匹配n滑频,此處的n是一個十六進制轉(zhuǎn)義碼捡偏。十六進制轉(zhuǎn)義碼必須正好是兩位數(shù)長。例如峡迷,“\x41”匹配“A”银伟。“\x041”與“\x04”&“1”等效绘搞。允許在正則表達式中使用 ASCII 代碼彤避。

\num

匹配num,此處的num是一個正整數(shù)夯辖。到捕獲匹配的反向引用琉预。例如,“(.)\1”匹配兩個連續(xù)的相同字符蒿褂。

\n

標識一個八進制轉(zhuǎn)義碼或反向引用圆米。如果 \n前面至少有n個捕獲子表達式,那么n是反向引用啄栓。否則娄帖,如果n是八進制數(shù) (0-7),那么n是八進制轉(zhuǎn)義碼昙楚。

\nm

標識一個八進制轉(zhuǎn)義碼或反向引用近速。如果 \nm前面至少有nm個捕獲子表達式,那么nm是反向引用。如果 \nm前面至少有n個捕獲数焊,則n是反向引用永淌,后面跟有字符m。如果兩種前面的情況都不存在佩耳,則 \nm匹配八進制值nm遂蛀,其中nm是八進制數(shù)字 (0-7)。

\nml

n是八進制數(shù) (0-3)干厚,ml是八進制數(shù) (0-7) 時李滴,匹配八進制轉(zhuǎn)義碼nml

\un

匹配n蛮瞄,其中n是以四位十六進制數(shù)表示的 Unicode 字符所坯。例如,\u00A9 匹配版權(quán)符號 (?)挂捅。



https://msdn.microsoft.com/zh-cn/library/ae5bf541(v=vs.90).aspx

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末芹助,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子闲先,更是在濱河造成了極大的恐慌状土,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,423評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件伺糠,死亡現(xiàn)場離奇詭異蒙谓,居然都是意外死亡,警方通過查閱死者的電腦和手機训桶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,147評論 2 385
  • 文/潘曉璐 我一進店門累驮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人舵揭,你說我怎么就攤上這事谤专。” “怎么了午绳?”我有些...
    開封第一講書人閱讀 157,019評論 0 348
  • 文/不壞的土叔 我叫張陵毒租,是天一觀的道長。 經(jīng)常有香客問我箱叁,道長,這世上最難降的妖魔是什么惕医? 我笑而不...
    開封第一講書人閱讀 56,443評論 1 283
  • 正文 為了忘掉前任耕漱,我火速辦了婚禮,結(jié)果婚禮上抬伺,老公的妹妹穿的比我還像新娘螟够。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 65,535評論 6 385
  • 文/花漫 我一把揭開白布妓笙。 她就那樣靜靜地躺著若河,像睡著了一般。 火紅的嫁衣襯著肌膚如雪寞宫。 梳的紋絲不亂的頭發(fā)上萧福,一...
    開封第一講書人閱讀 49,798評論 1 290
  • 那天,我揣著相機與錄音辈赋,去河邊找鬼鲫忍。 笑死,一個胖子當著我的面吹牛钥屈,可吹牛的內(nèi)容都是我干的悟民。 我是一名探鬼主播,決...
    沈念sama閱讀 38,941評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼篷就,長吁一口氣:“原來是場噩夢啊……” “哼射亏!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起竭业,我...
    開封第一講書人閱讀 37,704評論 0 266
  • 序言:老撾萬榮一對情侶失蹤智润,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后永品,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體做鹰,經(jīng)...
    沈念sama閱讀 44,152評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,494評論 2 327
  • 正文 我和宋清朗相戀三年鼎姐,在試婚紗的時候發(fā)現(xiàn)自己被綠了钾麸。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,629評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡炕桨,死狀恐怖饭尝,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情献宫,我是刑警寧澤钥平,帶...
    沈念sama閱讀 34,295評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站姊途,受9級特大地震影響涉瘾,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜捷兰,卻給世界環(huán)境...
    茶點故事閱讀 39,901評論 3 313
  • 文/蒙蒙 一立叛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧贡茅,春花似錦秘蛇、人聲如沸其做。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽妖泄。三九已至,卻和暖如春艘策,著一層夾襖步出監(jiān)牢的瞬間蹈胡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,978評論 1 266
  • 我被黑心中介騙來泰國打工柬焕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留审残,地道東北人。 一個月前我還...
    沈念sama閱讀 46,333評論 2 360
  • 正文 我出身青樓搅轿,卻偏偏與公主長得像践叠,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子赎懦,可洞房花燭夜當晚...
    茶點故事閱讀 43,499評論 2 348

推薦閱讀更多精彩內(nèi)容