正規表示式的最簡單形式是在搜尋字串中匹配其本身的單個普通字元。/a/
,/7/
,/m/
;
可以將許多單字元組合起來以形成大的表示式/a7m/
。
請注意,沒有串聯運算子。只須在乙個字元後面鍵入另乙個字元。
句點(.)
匹配字串中的各種列印或非列印字元,只有乙個字元例外。這個例外就是換行符(\n)
。
中括號表示式的典型用途是指定任何大寫或小寫字母或任何數字的匹配。下面的表示式指定這樣的匹配:
```
/[a-za-z0-9]/
```
若要查詢不在列表或範圍內的所有字元,請將插入符號 (^) 放在列表的開頭。
/chapter [^1-5]/
/chapter [^12345]/
若要建立匹配字元組的乙個列表,請在方括號([ 和 ])內放置乙個或更多單個字元。當字元括在中括號內時,該列表稱為"中括號表示式"。與在任何別的位置一樣,普通字元在中括號內表示其本身,即,它在輸入文字中匹配一次其本身。
大多數特殊字元在中括號表示式內出現時失去它們的意義。不過也有一些例外,如:
若要使用範圍代替字元本身來表示匹配字元組,請使用連字元 (-) 將範圍中的開始字元和結束字元分開。/chapter [1-5]/
與/chapter [12345]/
相同,前者使用連字元-
,這裡需要注意,單詞 chapter 和後面的空格的位置相對於中括號內的字元是固定的。中括號表示式指定的只是匹配緊跟在單詞 chapter 和空格後面的單個字元位置的字符集。這是第九個字元位置。
當以這種方式指定範圍時,開始值和結束值兩者都包括在範圍內。注意,還有一點很重要,按 unicode 排序順序,開始值必須在結束值的前面。
若要在中括號表示式中包括連字元,請採用下列方法之一:
替換使用|
字元來允許在兩個或多個替換選項之間進行選擇。
這裡有兩個對比示例:
/^(chapter|section) [1-9][0-9]$/
上面的正規表示式要麼匹配行首的單詞 chapter,要麼匹配行尾的單詞 section 及跟在其後的任何數字。如果輸入字串是 chapter 22,那麼上面的表示式只匹配單詞 chapter。如果輸入字串是 section 22,那麼該表示式匹配 section 22。
/^(chapter|section) [1-9][0-9]$/
使用括號來限制替換的範圍,使正規表示式更易於控制,這裡涉及到反向引用。通過在上面的正規表示式的適當位置新增括號,就可以使該正規表示式匹配 chapter 1 或 section 3。
注:在這裡的1和2 兩項中,儘管這些表示式正常工作,但chapter|section
周圍的括號還將捕獲兩個匹配字中的任乙個儲存供以後使用。由於在上面的表示式中只有一組括號,因此,只有乙個**獲的"子匹配項"。
只需要使用括號來組合單詞 chapter 和 section 之間的選擇。若要防止匹配被儲存以備將來使用,請在括號內正規表示式模式之前放置 ?:。
/^(?:chapter|section) [1-9][0-9]$/
上面的修改可以提供相同的能力而不儲存子匹配項。
除 ?: 元字元外,兩個其他非捕獲元字元建立被稱為"**先行"匹配的某些內容。
正向**先行使用?=
指定,它匹配處於括號中匹配正規表示式模式的起始點的搜尋字串。
/windows(?=95 |98 |nt )/
反向**先行使用?!
指定,它匹配處於與正規表示式模式不匹配的字串的起始點的搜尋字串。不匹配規定的前面的字串。
這裡建議到正規表示式中的元字元中去檢視詳細講解。
正規表示式
描述/\b([a-z]+) \1\b/gi
乙個單詞連續出現的位置。
/(\w+): \/\/([^/:]+)(:\d*)?([^# ]*)/
將乙個url解析為協議、域、埠及相對路徑。
/^(?:chapter|section) [1-9][0-9]$/
定位章節的位置。
/[-a-z]/
a至z共26個字母再加乙個-號。
/ter\b/
可匹配chapter,而不能匹配terminal。
/\bapt/
可匹配chapter,而不能匹配aptitude。
/windows(?=95 |98 |nt )/
可匹配windows95或windows98或windowsnt,當找到乙個匹配後,從windows後面開始進行下一次的檢索匹配。
/^\s*$/
匹配空行。
/\d-\d/
驗證由兩位數字、乙個連字元再加 5 位數字組成的 id 號。
/<\s*(\s+)(\s[^>]*)?>[\s\s]*<\s*/\1\s*>/
匹配 html 標記。
正規表示式示例
表示式匹配 s 匹配空行。d d 驗證由兩位數字 乙個連字元再加 5 位數字組成的 id 號。s s s s s s 1 s 匹配 html 標記。下表包含了元字元的完整列表以及它們在正規表示式上下文中的行為 字元說明 將下一字元標記為特殊字元 文字 反向引用或八進位制轉義符。例如,n 匹配字元 n...
正規表示式示例
匹配 s 匹配空行。d d 驗證由兩位數字 乙個連字元再加 5 位數字組成的 id 號。s s s s s s 1 s 匹配 html 標記。下表包含了元字元的完整列表以及它們在正規表示式上下文中的行為 說明 將下一字元標記為特殊字元 文字 反向引用或八進位制轉義符。例如,n 匹配字元 n n 匹配...
正規表示式 示例
正規表示式的最簡單形式是在搜尋字串中匹配其本身的單個普通字元。例如,單字元模式,如 a,不論出現在搜尋字串中的何處,它總是匹配字母 a。下面是一些單字元正規表示式模式的示例 a 7 m 可以將許多單字元組合起來以形成大的表示式。例如,以下正規表示式組合了單字元表示式 a 7 和 m。a7m 請注意,...