1. 基本概念
在計算機科學中,是指一個用來描述或者匹配一系列符合某個句法規則的字符串的單個字符串。在很多文本編輯器或其他工具裏,正則表達式通常被用來檢索和/或替換那些符合某個模式的文本內容。許多程序設計語言都支持利用正則表達式進行字符串操作。例如,在Perl中就內建了一個功能強大的正則表達式引擎。正則表達式這個概念最初是由Unix中的工具軟件(例如sed和grep)普及開的。正則表達式通常縮寫成“regex”,單數有regexp、regex,複數有regexps、regexes、regexen。
2. 常見實例
1)以特定模式開頭或結尾的模式
“ ^” : 表示開頭;
“$” : 表示結尾;
"^The":表示所有以"The"開始的字符串("There","The cat"等);
"of despair$":表示所有以"of despair"結尾的字符串;
"^abc$":表示開始和結尾都是"abc"的字符串——呵呵,只有"abc"自己了;
"notice":表示任何包含"notice"的字符串。
2)通用替代符 “ * ” 和 “ + ” 和 “ ? ” 和 “ . ”
' * ' :出現次數大於等於0;
'+' :出現次數大於等於1;
'?' :出現0次或1次。
"ab*":表示一個字符串有一個a後面跟着零個或若干個b。("a", "ab", "abbb",……);
"ab+":表示一個字符串有一個a後面跟着至少一個b或者更多;
"ab?":表示一個字符串有一個a後面跟着零個或者一個b;
"a?b+$":表示在字符串的末尾有零個或一個a跟着一個或幾個b。
'.' 可以替代任何一個字符
"a.[0-9]":表示一個字符串有一個"a"後面跟着一個任意字符和一個數字;
"^.{3}$":表示有任意三個字符的字符串(長度爲3個字符);
3)重複次數描述
用大括號括起,用以表示重複次數的範圍。
"ab{2}":表示一個字符串有一個a跟着2個b("abb");
"ab{2,}":表示一個字符串有一個a跟着至少2個b;
"ab{3,5}":表示一個字符串有一個a跟着3到5個b。
請注意,你必須指定範圍的下限(如:"{0,2}"而不是"{,2}")。
還有,你可能注意到了,'*','+'和 '?'相當於"{0,}","{1,}"和"{0,1}"。
4)“或”操作
描述符: |
"hi|hello":表示一個字符串裏有"hi"或者"hello";
"(b|cd)ef":表示"bef"或"cdef";
"(a|b)*c":表示一串"a""b"混合的字符串後面跟一個"c";
5)方括號
表示某些字符允許在一個字符串中的某一特定位置出現:
"[ab]":表示一個字符串有一個"a"或"b"(相當於"a|b");
"[a-d]":表示一個字符串包含小寫的'a'到'd'中的一個(相當於"a|b|c|d"或者"[abcd]");
"^[a-zA-Z]":表示一個以字母開頭的字符串;
"[0-9]%":表示一個百分號前有一位的數字;
",[a-zA-Z0-9]$":表示一個字符串以一個逗號後面跟着一個字母或數字結束。
6)用'^'表示不希望出現的字符
可以在方括號裏用'^'表示不希望出現的字符,'^'應在方括號裏的第一位。
如:"%[^a-zA-Z]%"表 示兩個百分號中不應該出現字母。
爲了逐字表達,必須在"^.$()|*+?{\"這些字符前加上轉移字符'\'。請注意在方括號中,不需要轉義字符。