在某些應用中,往往有時候需要根據一定的規則來匹配(查找)確認一些字符串,如要求用戶輸入的 QQ 號碼為數字且至少 5 位。用於描述這些規則的工具就是正則表達式。
最簡單的匹配就是直接給定字符匹配。如用字符 a 去匹配 aabab ,則會匹配出 3 個結果,分別是字符串中的第 1,2 和第 4 個字符。這種匹配是最簡單的情況,但往往實際處理中會復雜得多,如下面的 “QQ號碼為數字且至少5位” ,其對應的正則表達式為:
^d{5,}$
該正則表達式就描述需要確定的內容為至少 5 位以上的數字。我們來具體看看該表達式是怎麼描述這一規則的:
現在就很清楚了,該正則表達式綜合起來就是匹配 5 位以上的連續數字,且有獨立的開始和結束,對於少於 5 位的數字,或者不是以數字開始和結尾的如 a123456b 這樣都是無效的。
從該例子可以看出,正則表達式是從左至右描述的。
同樣,如果要匹配移動號碼的正則表達式為:
^1d{10}$
由於對正則表達式的匹配結果,在很多情況下都不是那麼確定,所以最好下載一些輔助工具用於測試正則表達式的匹配結果。這類工具如 Match Tracer、RegExBuilder 等,以及其他類似的工具也可。
在上面的例子中,^ 、d 及 $ 等這些符號,代表了特定的匹配意義,我們稱之為元字符,常用的元字符如下: