正則表達式是對字符串操做的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個「規則字符串」,
這個「規則字符串」用來表達對字符串的一種過濾邏輯。規定一些特殊語法表示字符類、數量限定符和位置關係,而後用這些特殊語法和普
通字符一塊兒表示一個模式,這就是正則表達式(Regular Expression)。
給定一個正則表達式和另外一個字符串,咱們能夠達到以下的目的:
1. 給定的字符串是否符合正則表達式的過濾邏輯(稱做「匹配」);
2. 能夠經過正則表達式,從字符串中獲取咱們想要的特定部分。
1. 靈活性、邏輯性和功能性很是的強;
2. 能夠迅速地用極簡單的方式達到字符串的複雜控制。
3. 對於剛接觸的人來講,比較晦澀難懂。
因爲正則表達式主要應用對象是文本,所以它在各類文本編輯器場合都有應用,小到著名編輯器EditPlus,大到
Microsoft Word、Visual Studio等大型編輯器,均可以使用正則表達式來處理文本內容。
例如找出多有符合xxxxx@xxxx.xxx模式的字符串(也就是mail地址),要求x能夠是字母、數字、下劃線、小數點、短劃線,email正則表達式
地址的每一部分能夠有一個或多個x字符,例如abc@ed.com、1_2@789-6.54等,固然,符合這個模式的並不必定是合法的mail地址,編輯器
但至少能夠作一次初步的篩選,篩選掉相似於a.b、c@d等不符合的字符串。再好比說,找出全部符合yyy.yyy.yyy.yyy模式的字符串(IP地spa
址),要求y是0~9的數字,IP地址的每一部分能夠有1~3個y字符。3d
字符類(Character Class):上例中的x和y,他們在模式中表示一個字符,可是取值範圍是一類字符中的任意一個。對象
eg:blog
數量限定符(Quantifier): 郵件地址的每一部分能夠有一個或多個x字符,IP地址的每一部 分能夠有1-3個y字符字符串
eg:it
位置限定符(Anchor):描述各類字符類以及普通字符之間的位置關係,例如郵件地址分三部分,用普通字符@和.隔 開,IP地址分四部分,用.隔開,每一部分均可以用io
字符類和數量限定符 描述。爲了表示位置關係,須要位置限定符的概念,將在下面介紹。class
eg:
eg: