1. 程式人生 > >搞定一切---正則表示式

搞定一切---正則表示式

正則表示式基礎部分

1.正則表示式(Regular Expression)通常縮寫成“regex”,單數有regexp、regex,複數有regexps、regexes、regexen。

2. 一個正則表示式通常被稱為一個模式(pattern),為用來描述或者匹配一系列匹配某個句法規則的字串。例如:HandelHändelHaendel這三個字串,都 可以由“H(a|ä|ae)ndel”這個模式來描述。

3.某個字元後的數量限定符用來限定前面這個字元允許出現的個數。最常見的數量限定符包括“+”、“?”和“*”(不加數量限定則代表出現一次且僅出現一次)

  +加號代表前面的字元必須至少出現一次。(1次、或多次)。例如,“

goo+gle”可以匹配googlegoooglegoooogle等;

  ?問號代表前面的字元最多隻可以出現一次。(0次、或1次)。例如,“colou?r”可以匹配color或者colour;

  *星號代表前面的字元可以不出現,也可以出現一次或者多次。(0次、或1次、或多次)。例如,“0*42”可以匹配42042004200042

4.圓括號可以用來定義操作符的範圍和優先度。例如,“gr(a|e)y”等價於“gray|grey”,“(grand)?father”匹配fathergrandfather

上述這些構造子都可以自由組合,因此,“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⊙。