Regex小結

來源:互聯網
上載者:User

標籤:Regex

Regex複習

1.\,反斜線,將下一個字元標記為一個特殊字元、或一個原義字元或一個反向參考,或一個八進位轉義符。

eg:\n 換行,\\ 反斜線,\( (;

反向參考:

當加了括弧後,Regex引擎會記錄前面括弧總匹配的,並存入臨時緩衝區中;

把Regex的一部分放在圓括弧內可以將他們形成分組。然後可以對整個組使用一些正則操作,例如重複操作符;

所捕獲的每個子匹配都按照在Regex中從左至右所遇到的內容儲存。儲存子匹配的緩衝區編號從1開始,連續編號直至最大99個字運算式,每個緩衝區可以使用‘\n‘訪問,其中n為一個標誌特定緩衝區的一位或兩位十進位數

php過濾Regex的代碼

<?php

header(‘content-type:text/html;charset=utf-8‘);

$content="<table class=‘abc‘ style=‘abc‘><tr><td>adfdfgf</td></tr></table>";

$pattern1=‘/</?[^>]+>/‘;//過濾所有的html

$pattern2=‘/<([a-zA-Z]+)[^>]*>/‘;//過濾html屬性

$newcontent=preg_replace(‘/<([a-zA-Z]+)[^>]*>/‘,‘<\\1>‘,$content);

echo $newcontent;

?>

2.^,匹配輸入字串的開始位置,如果設定了RegExp對象的Multuline屬性,^也匹配‘\n‘或‘\r‘之後的位置

3.$,匹配輸入字串的結束位置,如果設定了RegExp對象的Multuline屬性,^也匹配‘\n‘或‘\r‘之前的位置

4.*,匹配前面字運算式零次或多次;

5.+,匹配前面運算式一次或多次;

6.?,匹配前面字運算式零次或一次

7.{n},匹配前面字運算式n次

8.{n,},匹配前面子運算式至少n次;

9.{n,m},匹配前面運算式至少次,至多m次

10.?當該字元跟在任何一個其他限制符(*,+?,{n},{n,m})後,匹配模式是非貪婪的。非貪婪模式儘可能少的匹配所搜尋的字串,而預設的貪婪模式則是儘可能多的匹配所搜尋的字串。

11..,匹配除‘\n‘之外的任何單個字元;

12.(pattern),匹配pattern並擷取這一次匹配,作為反向參考使用;

13.(?:pattern),匹配pattern但不擷取這一匹配,也就是說這是一個非擷取匹配,不進行儲存供以後使用

14.(?=pattern),正向預查,在任何匹配pattern的字串開始處尋找字串。這是一個非擷取匹配,也就是說,該匹配不需要擷取以供以後使用。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。預查不消耗字元,也就是說,在一個匹配發生後,在最後一次匹配之後立即開始下一次匹配的搜尋,而不是從包含預查的字元之後開始。但是,在“Windows(?=95|98|NT|2000)”後面加東西,就無法匹配了

15.(?!pattern),正則否定預查,在任何不匹配pattern的字串開始處尋找字串。

16.x|y,匹配x或y。例如‘z|food‘能匹配‘z‘或‘food‘,‘(z|f)ood‘則匹配‘zood‘或‘food‘。

17.[xyz],字元集合(character class)。匹配所包含的任意一個字元。例如,‘[abc]‘可以匹配‘plain‘中的‘a‘。特殊字元僅有反斜線\保持特殊含義,用於逸出字元。其他特殊字元如星號、加號、各種括弧等均作為一般字元。連字號-如果出現在字串中間表示字元範圍描述;如果出現在首位則僅作為一般字元。

18.[^xyz],排除型字元集合。匹配未列出的任一字元。

19.[a-z].字元範圍,匹配指定範圍內的任一字元。

20.[^a-z],排除型字元範圍。匹配未列出的任一字元。

21.\b,匹配一個單詞邊界,也就是指單詞和空格的位置。

22.\B,匹配非單詞邊界。

23.\cx,匹配由x指明的控制字元。例如,\cM匹配一個Control-M或斷行符號符。x的值必須為A-Z或a-z之一。否則,將視為一個原義的‘c‘字元。

24.\d,匹配一個數字字元。

25.\D,匹配一個非數字字元。

26.\f,匹配一個換頁符。

27.\n,匹配一個分行符號。

28.\r,匹配一個斷行符號符。

29.\s,匹配任何空白字元,包括空格,定位字元,換頁符等等。

30.\S,匹配任何非空白字元。

31.\t,匹配一個定位字元。

32.\v,匹配一個垂直定位字元。

33.\w,匹配包括底線的任何單詞字元,等價於[A-Za-z_];

34.\W,匹配任何非單詞字元。

35.\xn,匹配n,其中n為十六進位轉義值必須為確定的兩個數字長。例如,“\x41”匹配“A”。

36.\num,反向參考一個子字串,該子字串與Regex的第num個用括弧圍起來的子運算式匹配。其中num是從1開始的正整數,其上限可是99。

37.\n,匹配一個八進位轉義值或一個反向參考。

38.\un,匹配n,其中n是一個用四個十六進位數字表示的Unicode字元。例如,\u00A9匹配著作權符號()。


本文出自 “虎哥的部落格” 部落格,請務必保留此出處http://7613577.blog.51cto.com/7603577/1531057

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.