1. 程式人生 > >正則表達式簡介

正則表達式簡介

反義詞 pre bcd 多行 匹配中文 匹配 正則表達 res 文本模式

  • 什麽是正則表達式

正則表達式(Regular Expression)是一種文本模式,在編寫處理字符串的程序或網頁時,經常會有查找符合某些規則的字符串的需求。正則表達式就是用於描述這些規則的工具,換句話說,正則表達式就是記錄文本規則的代碼。

一、正則表達式常用字符

1) 常用元字符

  1. . 匹配除換行符以外的任意字符。
  2. \w 匹配字母、數字、下劃線。
  3. \s 匹配任意的空白符。
  4. \d 匹配數字。
  5. \b 匹配單詞的開始或結束。匹配符合表達式規則,並且以英文單詞的形式出現(前後有空格)。如:var reg = /abc\b/; 匹配"abc 123 abc abcdey abc",結果為:abc abc。
  6. ^ 匹配字符串的開始(從字符串的第一個字符開始匹配),如果不指定開始和結束,將匹配字符串中任意位置的字符。如:var reg = /[1-9]{1,}/; 匹配"abc12345dey",結果為:12345。
  7. $ 匹配字符串的結束(匹配到字符串的最後一個字符)。

2) 常用限定符

  1. * 重復零次或多次。
  2. + 重復一次或多次。
  3. ? 重復零次或一次。
  4. {n} 重復 n次。
  5. {n,} 重復 n次或多次。
  6. {n,m} 重復 n次到m次。

3) 常用反義詞

  1. \W 匹配任意不是字母,數字,下劃線,漢字的字符。
  2. \S 匹配任意不是空白的字符。
  3. \D 匹配任意非數字的字符。
  4. \B 匹配不是單詞開頭或結束的位置。
  5. [^x] 匹配除了x以外的任意字符。
  6. [^aeiou]匹配除了aeiou這幾個字母以外的任意字符。

  • 特殊字符"\"

1) 該字符可以將元字符轉義為常量,例如:"\.",將元字符".",轉為義為常量"."。

2) 該字符還可以將常量轉義為元字符,例如:"\w",將常量"w",轉為義為元字符"\w"。

二、正則表達式修飾符

1) /g 表示該表達式將用來在輸入字符串中查找所有可能的匹配,返回的結果可以是多個,如果不加/g最多只會匹配一個。

2) /i 表示匹配字符串時不區分大小寫。

3) /m 表示多行匹配。什麽是多行匹配呢?就是匹配換行符兩端的潛在匹配,映象正則中^$符號。

三、示例

1) 使用 [] 限定範圍

  1. [abc] 字符串中某個字符出現表達式中,則匹配成功。例如匹配"1a2b3c",結果為:a b c。
  2. [a-z1-9]] 字符串中某個字符出現表達式的範圍中,則匹配成功。例如匹配"ahzAZ0139@",結果為:a h z 1 3 9。
  3. [a-zA-Z0-9] 字符串中某個字符出現表達式的範圍中,則匹配成功。例如匹配"ahzAZ0139@",結果為:a h z A Z 0 1 3 9。

2) 使用 (|) 限定組

  1. Window(95|98|NT|2000) 某個字符串匹配正則表達式中的多個分組,例如匹配"Window95WindowWindow98window98WindowNT",結果為:Window95 Window98 WindowNT。

3) 匹配中文

  1. [^x00-xff]{1,} 匹配中文字符串,例如匹配"啊1a看.~!@#$%^&*(),./\][{}-+",結果為:啊 看.~! #$% &*(),./ {}-+。匹配不準確!
  2. [\u4e00-\u9fa5]{1,} 匹配中文字符串,例如匹配"啊1a看.~!@#$%^&*(),./\][{}-+",結果為:啊 看。匹配準確!

正則表達式簡介