搞定一切---正則表示式
正則表示式基礎部分
1.正則表示式(Regular Expression)通常縮寫成“regex”,單數有regexp、regex,複數有regexps、regexes、regexen。
2. 一個正則表示式通常被稱為一個模式(pattern),為用來描述或者匹配一系列匹配某個句法規則的字串。例如:Handel、Händel和Haendel這三個字串,都
可以由“H(a|ä|ae)ndel
”這個模式來描述。
3.某個字元後的數量限定符用來限定前面這個字元允許出現的個數。最常見的數量限定符包括“+”、“?”和“*”(不加數量限定則代表出現一次且僅出現一次)
+加號代表前面的字元必須至少出現一次。(1次、或多次)。例如,“
goo+gle
”可以匹配google、gooogle、goooogle等;
?問號代表前面的字元最多隻可以出現一次。(0次、或1次)。例如,“colou?r
”可以匹配color或者colour;
*星號代表前面的字元可以不出現,也可以出現一次或者多次。(0次、或1次、或多次)。例如,“0*42
”可以匹配42、042、0042、00042等
4.圓括號可以用來定義操作符的範圍和優先度。例如,“gr(a|e)y
”等價於“gray|grey
”,“(grand)?father
”匹配father和grandfather。
上述這些構造子都可以自由組合,因此,“H(ae?|ä)ndel
”和“H(a|ae|ä)ndel
表示式全集
正則表示式有多種不同的風格。下表是在PCRE中元字元及其在正則表示式上下文中的行為的一個完整列表,適用於Perl或者Python程式語言(grep或者egrep的正則表示式文法是PCRE的子集):
-
-
示例[編輯]
- 以下是以PHP的語法所寫的示例
- 驗證字串是否只含數字與英文,字串長度並在4~16個字元之間
<?php $str = 'a1234'; if (preg_match("/^[a-zA-Z0-9]{4,16}$/", $str)) { echo "驗證成功"; } else { echo "驗證失敗"; } ?>
以上基礎知識摘自維基百科正則表示式(https://zh.wikipedia.org/wiki/正則表示式)
正則表示式進階部分
現在給大家推薦一個幫助自己寫正則表示式的開源網站Debuggex(https://www.debuggex.com/#cheatsheet)如果寫錯了正則表示式,這個網站會提示有錯,我覺得用得還行,下圖是我寫的一個驗證身份證號碼是否符合格式的正則,當一個使用例子看看吧
正則表示式的幾個基礎知識要記住,還有一些要注意的地方要注意,我也是新手,多多指教。
這個網站的result是你要測試的表示式,上面就是你寫的正則表示式。
分享學習到的知識,是會很有成就感的⊙0⊙。