原文:[url]http://www.regular-expressions.info/characters.html[/url]
字面字符
最基本的正則表達式是由一個單個的字面字符構成,例如 a 他將匹配字符串中該字符的首次出現。若是字符串是Jack is a boy,這將匹配J後面的a字符.雖然a在單詞中間是事實,但正則表達式引擎無論這些。若是你比較在乎這個,就須要告訴正則表達式引擎使用單詞邊界,後面咱們會介紹這個。
這正則表達式也能夠匹配的第二次出現的a。它只會在你告知的狀況下搜索整個字符串尋找第一次匹配以後的狀況。在文字編輯器,你能夠這樣作利用其「查找下一個」或「搜索前進」的功能。在一種編程語言中,一般有一個單獨的功能,您能夠調用繼續搜索上次匹配後的結果。
一樣,正則表達式cat匹配About cats and dogs中的cat。這正則表達式包括一系列的三個字面字符。這就比如對正則表達式引擎說:查找c,緊接着一個a,緊接着t
請注意,正則表達式引擎默認是區分大小寫的。cat不匹配Cat,除非你告訴正則表達式引擎忽略大小寫。
譯註:字面值指的是字母,數字,下劃線,各國語言字符,和下面要介紹的沒有特殊意義的標點字符。
特殊字符
由於咱們不想僅僅搜索一段字面文本,咱們須要保留必定字符用做特殊使用。在regex flavors discussed in this tutorial教程中,有11個字符具備特殊含義:他們是[\^$.|?*+()這些特殊字符叫作元字符。
若是想使用這些字符用做字母值,須要使用轉義符\若是想匹配1+1=2,正確的是1\+1=2.不然,+將具備特殊意義。
若是你忘記了轉義且把這些字符用在了不正確的位置,那麼會獲得一個錯誤信息。 大部分表達式把{看做字面值,除非是重複操做相似{1,3}的一部分。因此一般沒必要轉義,雖然你能夠這麼作。有個例外是:java.util.regex包,它要求全部字母括號都要轉義。 全部其餘字符不要轉義,由於\也是特殊符號。\和一些字面字符在一塊兒可能有其餘意義:例如\d匹配0-9