PHP匹配連續的數字或字母的Regex

來源:互聯網
上載者:User

Regex的寫法規則:"/規則需要寫在2個斜杠中間/"

  • . :小數點)用於匹配除分行符號之外的所有字元。
  • \s:反斜線小寫s)用於匹配單個空格符,包括tab鍵和分行符號;
  • \S:反斜線大寫S)用於匹配除單個空格符之外的所有字元;
  • \d:反斜線d)用於匹配從0到9的數字;也可以這樣寫:[0-9]
  • \w:反斜線小寫w)用於匹配字母,數字或底線;
  • \W:反斜線大寫W)用於匹配所有與\w不匹配的字元;

元字元包括: +*?

元字元理解起來容易混淆,所以我在後面做了代碼結果

複製代碼 代碼如下:“+”元字元規定其前置字元必須連續出現一次或多次

= 比如/es+/
與“tesseessssseast12354haeasashaha”字串相匹配,首先要與第一個字母e匹配,然後匹配s,s必須出現一次或多次,請看執行個體。

“*”元字元規定其前置字元必須出現零次或連續多次

= 比如/es*/
與“tesseessssseast12354haeasashaha”字串相匹配,首先與第一個字母e匹配,後面的s出現零次或者連續出現,看執行個體。

“?”元字元規定其前置對象必須連續出現零次或一次

= 比如/es?/
與“tesseessssseast12354haeasashaha”字串相匹配,首先與第一個字母e匹配,後面的s出現零次或者最多出現一次(就是最後一個字母s不重複出現)。

範例程式碼: 複製代碼 代碼如下:$str = "tesseessssseast12354haeasashaha";
echo "=====".$str."
";
echo "/es+/:".preg_replace("/es+/","-\\0-",$str)."
";
echo "/es*/:".preg_replace("/es*/","-\\0-",$str)."
";
echo "/es?/:".preg_replace("/es?/","-\\0-",$str)."
";
?>

執行結果:

另外如果覺得元字元“+*?”比較難理解可以用這種{ }方法代替:

比如es*我們可以寫成es{0,},而es+我們可以寫成es{1,},es?可以寫成es{0,1},注意:當不確定次數的時候就不用寫(也不用空格)。

當然我們要指定出現多少次的可以寫成這樣:es{3}表示s出現3次

舉一反三:

比如要替換連續多個空格為一個空格,我可以這樣寫:preg_replace("/\s+/"," ",$str);
比如要找出字串中的數字(整數)preg_replace("/\d+/", "(\\0)", $str); \\0是表示符合規則的字串值

比如要找出字串中的帶小數點的數字preg_replace("/\d+\.\d+/", "(\\0)", $str); //這裡的“\.”表示輸出小數點

找出由字母組成的字串:preg_replace("/[a-zA-Z]+/", "(\\0)", $str)

找出由(字母、數字混合)組成的字串:preg_replace("/([a-zA-Z]|\d)+/", "(\\0)", $str)

Regex中“或”運算,使用 “ | ”

例如上面的例子:找出由(字母或數字)混合組成的字串([a-zA-Z]|\d) 也可以這樣寫([a-zA-Z]|[0-9])

^”出現在 “[ ]”內時就被視做否定運算子;[^0-9]表示除了數字之外的任何字元。

而當“^”位於“[ ]”之外,或沒有“[ ]”時,則應當被視做定位器。

定位器的意思就是比如:“^The”:開頭一定要有”The”字串;類似的:“en$”:$符號表示必須是en結尾。

其實認真看一遍就會發現Regex還是挺簡單的,除非是我寫的教程真的有問題。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.