PHP正則表達式的快速學習方法

2021-01-21 站長之家

1、入門簡介

簡單的說,正則表達式是一種可以用於模式匹配和替換的強有力的工具。我們可以在幾乎所有的基於UNIX系統的工具中找到正則表達式的身影,例如,vi編輯器,Perl或PHP腳本語言,以及awk或sed shell程序等。此外,象JavaScript這種客戶端的腳本語言也提供了對正則表達式的支持。由此可見,正則表達式已經超出了某種語言或某個系統的局限,成為人們廣為接受的概念和功能。
正則表達式可以讓用戶通過使用一系列的特殊字符構建匹配模式,然後把匹配模式與數據文件、程序輸入以及WEB頁面的表單輸入等目標對象進行比較,根據比較對象中是否包含匹配模式,執行相應的程序。
  舉例來說,正則表達式的一個最為普遍的應用就是用於驗證用戶在線輸入的郵件地址的格式是否正確。如果通過正則表達式驗證用戶郵件地址的格式正確,用戶所填寫的表單信息將會被正常處理;反之,如果用戶輸入的郵件地址與正則表達的模式不匹配,將會彈出提示信息,要求用戶重新輸入正確的郵件地址。由此可見正則表達式在WEB應用的邏輯判斷中具有舉足輕重的作用。

2、基本語法

在對正則表達式的功能和作用有了初步的了解之後,我們就來具體看一下正則表達式的語法格式。
正則表達式的形式一般如下:
/love/
其中位於「/」定界符之間的部分就是將要在目標對象中進行匹配的模式。用戶只要把希望查找匹配對象的模式內容放入「/」定界符之間即可。為了能夠使用戶更加靈活的定製模式內容,正則表達式提供了專門的「元字符」。所謂元字符就是指那些在正則表達式中具有特殊意義的專用字符,可以用來規定其前導字符(即位於元字符前面的字符)在目標對象中的出現模式。
較為常用的元字符包括: 「+」, 「*」,以及 「?」。其中,「+」元字符規定其前導字符必須在目標對象中連續出現一次或多次,「*」元字符規定其前導字符必須在目標對象中出現零次或連續多次,而「?」元字符規定其前導對象必須在目標對象中連續出現零次或一次。
下面,就讓我們來看一下正則表達式元字符的具體應用。
/fo+/
因為上述正則表達式中包含「+」元字符,表示可以與目標對象中的 「fool」, 「fo」, 或者 「football」等在字母f後面連續出現一個或多個字母o的字符串相匹配。
/eg*/
因為上述正則表達式中包含「*」元字符,表示可以與目標對象中的 「easy」, 「ego」, 或者 「egg」等在字母e後面連續出現零個或多個字母g的字符串相匹配。
/Wil?/
因為上述正則表達式中包含「?」元字符,表示可以與目標對象中的 「Win」, 或者 「Wilson」,等在字母i後面連續出現零個或一個字母l的字符串相匹配。
除了元字符之外,用戶還可以精確指定模式在匹配對象中出現的頻率。例如,
/jim{2,6}/
上述正則表達式規定字符m可以在匹配對象中連續出現2-6次,因此,上述正則表達式可以同jimmy或jimmmmmy等字符串相匹配。
在對如何使用正則表達式有了初步了解之後,我們來看一下其它幾個重要的元字符的使用方式。
\s:用於匹配單個空格符,包括tab鍵和換行符;
\S:用於匹配除單個空格符之外的所有字符;
\d:用於匹配從0到9的數字;
\w:用於匹配字母,數字或下劃線字符;
\W:用於匹配所有與\w不匹配的字符;
. :用於匹配除換行符之外的所有字符。
(說明:我們可以把\s和\S以及\w和\W看作互為逆運算)
下面,我們就通過實例看一下如何在正則表達式中使用上述元字符。
/\s+/
上述正則表達式可以用於匹配目標對象中的一個或多個空格字符。
/\d000/
如果我們手中有一份複雜的財務報表,那麼我們可以通過上述正則表達式輕而易舉的查找到所有總額達千元的款項。

除了我們以上所介紹的元字符之外,正則表達式中還具有另外一種較為獨特的專用字符,即定位符。定位符用於規定匹配模式在目標對象中的出現位置。
較為常用的定位符包括: 「^」, 「$」, 「\b」 以及 「\B」。其中,「^」定位符規定匹配模式必須出現在目標字符串的開頭,「$」定位符規定匹配模式必須出現在目標對象的結尾,\b定位符規定匹配模式必須出現在目標字符串的開頭或結尾的兩個邊界之一,而「\B」定位符則規定匹配對象必須位於目標字符串的開頭和結尾兩個邊界之內,即匹配對象既不能作為目標字符串的開頭,也不能作為目標字符串的結尾。同樣,我們也可以把「^」和「$」以及「\b」和「\B」看作是互為逆運算的兩組定位符。舉例來說:
/^hell/
因為上述正則表達式中包含「^」定位符,所以可以與目標對象中以 「hell」, 「hello」或 「hellhound」開頭的字符串相匹配。
/ar$/
因為上述正則表達式中包含「$」定位符,所以可以與目標對象中以 「car」, 「bar」或 「ar」 結尾的字符串相匹配。

/\bbom/
因為上述正則表達式模式以「\b」定位符開頭,所以可以與目標對象中以 「bomb」, 或 「bom」開頭的字符串相匹配。
/man\b/
因為上述正則表達式模式以「\b」定位符結尾,所以可以與目標對象中以 「human」, 「woman」或 「man」結尾的字符串相匹配。
為了能夠方便用戶更加靈活的設定匹配模式,正則表達式允許使用者在匹配模式中指定某一個範圍而不局限於具體的字符。例如:
/[A-Z]/
上述正則表達式將會與從A到Z範圍內任何一個大寫字母相匹配。
/[a-z]/
上述正則表達式將會與從a到z範圍內任何一個小寫字母相匹配。
/[0-9]/
上述正則表達式將會與從0到9範圍內任何一個數字相匹配。
/([a-z][A-Z][0-9])+/
上述正則表達式將會與任何由字母和數字組成的字符串,如 「aB0」 等相匹配。這裡需要提醒用戶注意的一點就是可以在正則表達式中使用 「()」 把字符串組合在一起。「()」符號包含的內容必須同時出現在目標對象中。因此,上述正則表達式將無法與諸如 「abc」等的字符串匹配,因為「abc」中的最後一個字符為字母而非數字。
如果我們希望在正則表達式中實現類似編程邏輯中的「或」運算,在多個不同的模式中任選一個進行匹配的話,可以使用管道符 「|」。例如:
/to|too|2/
上述正則表達式將會與目標對象中的 「to」, 「too」, 或 「2」 相匹配。
正則表達式中還有一個較為常用的運算符,即否定符 「[^]」。與我們前文所介紹的定位符 「^」 不同,否定符 「[^]」規定目標對象中不能存在模式中所規定的字符串。例如:
/[^A-C]/
上述字符串將會與目標對象中除A,B,和C之外的任何字符相匹配。一般來說,當「^」出現在 「[]」內時就被視做否定運算符;而當「^」位於「[]」之外,或沒有「[]」時,則應當被視做定位符。
最後,當用戶需要在正則表達式的模式中加入元字符,並查找其匹配對象時,可以使用轉義符「\」。例如:
/Th\*/
上述正則表達式將會與目標對象中的「Th*」而非「The」等相匹配。

3、使用實例

①PHP中可以使用ereg()函數進行模式匹配操作。ereg()函數的使用格式如下:
 

以下為引用的內容:
  ereg(pattern, string)

  其中,pattern代表正則表達式的模式,而string則是執行查找替換操作的目標對象。同樣是驗證郵件地址,使用PHP編寫的程序代碼如下:

< ?php
   if (ereg(「^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+」,$email)){
              echo 「Your email address is correct!」;}
   else{
              echo 「Please try again!」;
      }
?>

②JavaScript 1.2中帶有一個功能強大的RegExp()對象,可以用來進行正則表達式的匹配操作。其中的test()方法可以檢驗目標對象中是否包含匹配模式,並相應的返回true或false。

我們可以使用JavaScript編寫以下腳本,驗證用戶輸入的郵件地址的有效性。

以下為引用的內容:
 <html>
   <head>
    <script language=\"Javascript1.2\">
     <!-- start hiding
     function verifyAddress(obj)
     {
      var email = obj.email.value;
      var pattern = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;
      flag = pattern.test(email);
      if(flag)
      {
       alert(「Your email address is correct!」);
       return true;
      }
      else
       {
        alert(「Please try again!」);
        return false;
        }
      }
     // stop hiding -->
    </script>
   </head>
   <body>
   <form onSubmit=\"return verifyAddress(this);\">
   <input name=\"email\" type=\"text\"/>
   <input type=\"submit\"/>
   </form>
  </body>
 </html>

想必很多人都對正則表達式都頭疼。今天,我以我的認識,加上網上一些文章,希望用常人都可以理解的表達方式。來和大家分享學習經驗。

開篇,還是得說說 ^ 和 $ 他們是分別用來匹配字符串的開始和結束,以下分別舉例說明:

「^The」:開頭一定要有」The」字符串;
「of despair$」:結尾一定要有」of despair」 的字符串;

那麼,
「^abc$」:就是要求以abc開頭和以abc結尾的字符串,實際上是只有abc匹配;
「notice」:匹配包含notice的字符串;

你可以看見如果你沒有用我們提到的兩個字符(最後一個例子),就是說模式(正則表達式)可以出現在被檢驗字符串的任何地方,你沒有把他鎖定到兩邊。

接著,說說 『*』 『+』 和 『?』
他們用來表示一個字符可以出現的次數或者順序,他們分別表示:
「zero or more」相當於{0,}
「one or more」相當於{1,}
「zero or one.」相當於{0,1}

這裡是一些例子:

「ab*」:和ab{0,}同義,匹配以a開頭,後面可以接0個或者N個b組成的字符串(」a」, 「ab」, 「abbb」, 等);
「ab+」:和ab{1,}同義,同上條一樣,但最少要有一個b存在 (」ab」 「abbb」等);
「ab?」:和ab{0,1}同義,可以沒有或者只有一個b;
「a?b+$」:匹配以一個或者0個a再加上一個以上的b結尾的字符串。

要點:』*』 『+』 和 『?』 只管它前面那個字符。

你也可以在大括號裡面限制字符出現的個數,比如:

「ab{2}」: 要求a後面一定要跟兩個b(一個也不能少)(」abb」);
「ab{2,}」: 要求a後面一定要有兩個或者兩個以上b(如」abb」 「abbbb」 等);
「ab{3,5}」: 要求a後面可以有2-5個b(」abbb」, 「abbbb」, or 「abbbbb」)。

現在我們把一定幾個字符放到小括號裡,比如:

「a(bc)*」: 匹配 a 後面跟0個或者一個」bc」;
「a(bc){1,5}」: 一個到5個 「bc」;

還有一個字符 『|』,相當於OR操作:

「hi|hello」: 匹配含有」hi」 或者 「hello」 的 字符串;
「(b|cd)ef」: 匹配含有 「bef」 或者 「cdef」的字符串;
「(a|b)*c」: 匹配含有這樣多個(包括0個)a或b,後面跟一個c的字符串;

一個點(』.』)可以代表所有的單一字符,不包括」\n」

如果,要匹配包括」\n」在內的所有單個字符,怎麼辦?

用』[\n.]』這種模式。

「a.[0-9]」: 一個a加一個字符再加一個0到9的數字;
「^.{3}$」: 三個任意字符結尾。

中括號括住的內容只匹配一個單一的字符

「[ab]」: 匹配單個的 a 或者 b ( 和 「a│b」 一樣);
「[a-d]」: 匹配』a』 到』d』的單個字符 (和」a│b│c│d」 還有 「[abcd]」效果一樣);

一般我們都用[a-zA-Z]來指定字符為一個大小寫英文:

「^[a-zA-Z]」: 匹配以大小寫字母開頭的字符串;
「[0-9]%」: 匹配含有 形如 x% 的字符串;
「,[a-zA-Z0-9]$」: 匹配以逗號再加一個數字或字母結尾的字符串;

你也可以把你不想要得字符列在中括號裡,你只需要在總括號裡面使用』^』 作為開頭 「%[^a-zA-Z]%」 匹配含有兩個百分號裡面有一個非字母的字符串。

要點:^用在中括號開頭的時候,就表示排除括號裡的字符。

為了PHP能夠解釋,你必須在這些字符面前後加」,並且將一些字符轉義。

不要忘記在中括號裡面的字符是這條規路的例外—在中括號裡面,所有的特殊字符,包括(」),都將失去他們的特殊性質 「[*\+?{}.]」匹配含有這些字符的字符串:

還有,正如regx的手冊告訴我們:」如果列表裡含有』]』,最好把它作為列表裡的第一個字符(可能跟在』^』後面)。如果含有』-』,最好把它放在最前面或者最後面, or 或者一個範圍的第二個結束點[a-d-0-9]中間的『-』將有效。

看了上面的例子,你對{n,m}應該理解了吧。要注意的是,n和m都不能為負整數,而且n總是小於m。這樣,才能 最少匹配n次且最多匹配m次。如」p{1,5}」將匹配 「pvpppppp」中的前五個p

下面說說以\開頭的

\b 書上說他是用來匹配一個單詞邊界,就是…比如』ve\b』,可以匹配love裡的ve而不匹配very裡有ve

\B 正好和上面的\b相反。例子我就不舉了

…..突然想起來….可以到 https://www.phpv.net/article.php/251 看看其它用\開頭的語法

好,我們來做個應用:如何構建一個模式來匹配貨幣數量的輸入。

構建一個匹配模式去檢查輸入的信息是否為一個表示money的數字。我們認為一個表示money的數量有四種方式:」10000.00″ 和 「10,000.00″,或者沒有小數部分,」10000″ and 「10,000″。現在讓我們開始構建這個匹配模式:

^[1-9][0-9]*$

這是所變量必須以非0的數字開頭。但這也意味著單一的」0″也不能通過測試。以下是解決的方法:

^(0|[1-9][0-9]*)$

「只有0和不以0開頭的數字與之匹配」,我們也可以允許一個負號在數字之前:

^(0|-?[1-9][0-9]*)$

這就是:0或者一個以0開頭且可能有一個負號在前面的數字。好了,現在讓我們別那麼嚴謹,允許以0開頭。現在讓我們放棄負號,因為我們在表示錢幣的時候並不需要用到。我們現在指定模式用來匹配小數部分:

^[0-9]+(\.[0-9]+)?$

這暗示匹配的字符串必須最少以一個阿拉伯數字開頭。但是注意,在上面模式中 「10.」 是不匹配的, 只有 「10″ 和 「10.2″ 才可以,你知道為什麼嗎?

^[0-9]+(\.[0-9]{2})?$

我們上面指定小數點後面必須有兩位小數。如果你認為這樣太苛刻,你可以改成:

^[0-9]+(\.[0-9]{1,2})?$

這將允許小數點後面有一到兩個字符。現在我們加上用來增加可讀性的逗號(每隔三位),我們可以這樣表示:

^[0-9]{1,3}(,[0-9]{3})*(\.[0-9]{1,2})?$

不要忘記』+』可以被』*』替代如果你想允許空白字符串被輸入話,也不要忘記反斜杆』\』在php字符串中可能會出現錯誤 (很普遍的錯誤):

現在,我們已經可以確認字符串了,我們現在把所有逗號都去掉str_replace(」,」, 「」, $money)然後在把類型看成double然後我們就可以通過他做數學計算了。

再來一個:

構造檢查email的正則表達式

在一個完整的email地址中有三個部分:

1. 用戶名 (在 『@』 左邊的一切)
2.』@』
3. 伺服器名(就是剩下那部分)

用戶名可以含有大小寫字母阿拉伯數字,句號(』.』)減號(』-』)and下劃線』_』)。伺服器名字也是符合這個規則,當然下劃線除外。

現在,用戶名的開始和結束都不能是句點,伺服器也是這樣。還有你不能有兩個連續的句點他們之間至少存在一個字符,好現在我們來看一下怎麼為用戶名寫一個匹配模式:

^[_a-zA-Z0-9-]+$

現在還不能允許句號的存在。我們把它加上:

^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*$

上面的意思就是說:以至少一個規範字符(除了.)開頭,後面跟著0個或者多個以點開始的字符串。

簡單化一點, 我們可以用eregi()取代ereg()、eregi()對大小寫不敏感, 我們就不需要指定兩個範圍 「a-z」 和 「A-Z」只需要指定一個就可以了:

^[_a-z0-9-]+(\.[_a-z0-9-]+)*$

後面的伺服器名字也是一樣,但要去掉下劃線:

^[a-z0-9-]+(\.[a-z0-9-]+)*$

好。現在只需要用」@」把兩部分連接:

^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$

這就是完整的email認證匹配模式了,只需要調用:

eregi(」^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$」,$eamil)

就可以得到是否為email了

正則表達式的其他用法

提取字符串

ereg() and eregi() 有一個特性是允許用戶通過正則表達式去提取字符串的一部分(具體用法你可以閱讀手冊)。比如說,我們想從 path/URL 提取文件名,下面的代碼就是你需要:

ereg(」([^\\/]*)$」, $pathOrUrl, $regs);
echo $regs[1];

高級的代換

ereg_replace() 和 eregi_replace()也是非常有用的,假如我們想把所有的間隔負號都替換成逗號:

ereg_replace(」[ \n\r\t]+」, 「,」, trim($str));

最後,我把另一串檢查EMAIL的正則表達式讓看文章的你來分析一下:

「^[-!#$%&\』*+\\./0-9=?A-Z^_`a-z{|}~]+』.』@』.』[-!#$%&\』*+\\/0-9=?A-Z^_`a-z{|}~]+\.』.』[-!#$%&\』*+\\./0-9=?A-Z^_`a-z{|}~]+$」

如果能方便的讀懂,那這篇文章的目的就達到了。

相關焦點

  • 正則表達式在VBA中間是如何應用?正則表達式的實現方式?
    Hi,大家好,本章節開始將會從零開始和大家用圖文的方式,讓你從零基礎學會正則表達式!有興趣的小夥伴可以持續關注我,或者在專欄中進行查看自我學習,願與君攜手前行!在上一個章節說到正則表達式的入門級知識點,本節將會與大家分享一下正則表達式的是具體實現方式是怎麼樣的?
  • 帶您一小時玩轉正則表達式
    在日常開發中我們經常會對用戶輸入的數據進行校驗、對字符串進行提取或者替換,這時候往往會使用正則來實現,那麼今天我給大家分享下正則表達式的一些知識。一、什麼是正則表達式正則表達式是一種描述字符串結果的語法規則,是一個特定的格式化模式,可以匹配、替換、截取匹配的字符串。
  • 正則表達式A - 方法及特殊字符用法
    課程大綱 1.正則表達式的概念及作用 2.正則表達式的創建方法 3.正則表達式的用法 正則表達式概念: 正則表達式是由普通字符及特殊字符組成的對字符串進行過濾的邏輯公式 正則表達式的創建方式: 1.字面量方式創建 (隱式創建): var reg = /正則表達式/gi;
  • 學習Python正則表達式
    Python中的正則表達式(re)就可以解決這個問題!正則表達式正則表達式是一個具有特殊字符的序列。它有助於檢查字符串中的每個字符,看它是否與某個模式匹配:哪些字符在什麼位置出現了多少次。正則表達式還有其他可以實現的功能嗎?』位置當然,在開始的時候,我們提到的RE也可以檢測到位置。因此,如果客戶在句子的開頭寫上電話號碼,你可以這樣做:text = '111-1234567! That is my number! The other one is 7654321!'
  • python正則表達式使用方法說明
    曾光紅/文 (同步發布豆瓜網)一、導入re庫python使用正則表達式要導入re庫。import re在re庫中。正則表達式通常被用來檢索查找、替換那些符合某個模式(規則)的文本。二、使用正則表達式步驟1、尋找規律;2、使用正則符號表示規律;3、提取信息,如果每一個字符都能匹配,則匹配成功;一旦有匹配不成功的字符則匹配失敗。
  • Python「正則表達式」詳解(上)
    大家好,今天我們一起學習以下Python中的「正則表達式」,說到正則表達式,大家可能比較陌生,不過我卻要告訴你,你每天都在使用正則表達式,不要不承認,就問你最常見的,瀏覽器每天用不?淘寶經常逛不?你在搜索框裡輸入幾個文字,按下回車,就出來大量結果,你想想這是怎麼辦到的,是正則表達式,可以好不誇張的講,沒有正則表達式,就沒有搜尋引擎。
  • 精通正則表達式的 12 個有用資源
    而正則表達式用來處理這樣的任務可以說是輕而易舉,而且代碼量很少。另外一方面,正則表達式被認為是非常難學的(@紅薯 深以為然),但其實不盡然。這裡有 12 個很棒的資源可以讓你學習並精通正則表達式。RegexPlanet 可以讓你測試不同程式語言的正則表達式匹配效果。你可以存儲正則表達式,同時該工具也提供一些常用的表達式。
  • 給JAVA程式設計師的正則表達式一課
    正則基礎正則表達式(Regex,簡稱RE)是一種根據字符串集中的每個字符串的共同特徵來描述字符串集的方法。可用於搜索,編輯或處理文本和數據。簡單來說,正則表達式是幫助我們根據特定格式驗證或匹配字符串的方式。可以類比資料庫的SQL語言,sql是搜索數據,RE是搜索字符串。正則表達式和SQL語言是開發界的兩個偉大發明。
  • 正則表達式與神經網絡的深度融合
    與之對應的,基於符號主義的規則系統,如正則表達式(regular expression, RE),通常由人類專家基於領域知識構建,具備著良好的可解釋性,可用於沒有任何數據的冷啟動場景,並且可以通過規則的增刪和修改來快速應對目標任務的變化。因此,儘管神經網絡和深度學習如火中天,在工業界實際應用場景中,基於規則的方法仍然有著穩固的地位。
  • 使用JavaScript對正則表達式進行解析
    它們具有自己的語法,就像它們是自己的程式語言一樣,並且存在於大多數(如果不是全部)程式語言中的正則表達式進行交互的方法和方式。正則表達式的常見示例,例如給定的字符串是電子郵件地址還是電話號碼,或者可用於驗證密碼是否滿足一定的複雜性。可以使用正則表達式做什麼?
  • 代碼詳解:Python正則表達式的終極使用指南
    全文共8032字,預計學習時長16分鐘處理文本數據的一個主要任務就是創建許多以文本為基礎的特性。人們可能想要在文本中找出特定格式的內容,比如找出存在於文本中的電子郵件,或者大型文本中的電話號碼。雖然想要實現上述功能聽起來很繁瑣,但是如果使用Python正則表達式模塊,就可以使這一操作更加簡單。
  • 在JavaScript字符串的search()方法中,如何匹配正則表達式?
    第二節:正則表達式特點正則表達式是由字符串組成的。正則表達式只是一種搜索模式或匹配模式。對於具體的字符串,需要經過正則表達式的計算後,形成一個值來判斷是否匹配上。正則表達式可簡單,可複雜,需要根據語法定義模式。在各個程式語言中,也會推出一些與正則表達式相關的輔助操作,如替找操作等。
  • Python正則表達式由淺入深(二)
    在前兩篇連載文章中,我們學習了re模塊的match()、search()、findall()方法,以及學習了使用正則表達式中常用的元字符、限定符、選擇字符、中括號來搭配這些方法來靈活處理常見的數據匹配問題。這本篇文章分鐘,我們將會進一步學習正則表達式中其他符合,包括令初學者非常頭疼的分組問題。
  • Python:正則表達式基本符號總結
    字符串是我們在編程的時候很常用的一種數據類型,檢查會在字符串裡面查找一些內容,對於比較簡單的查找,字符串裡面就有一些內置的方法可以處理,對於比較複雜的字符串查找,或者是有一些內容經常變化的字符串裡面查找,那麼字符串內置的查找方法已經不好使了,滿足不了我們的要求,這個時候就得用正則表達式了,正則表達式就是用來匹配一些比較複雜的字符串。
  • 精通正則表達式的 12 個有用資源 - OSCHINA - 中文開源技術交流社區
    而正則表達式用來處理這樣的任務可以說是輕而易舉,而且代碼量很少。另外一方面,正則表達式被認為是非常難學的(@紅薯 深以為然),但其實不盡然。這裡有 12 個很棒的資源可以讓你學習並精通正則表達式。RegexPlanet 可以讓你測試不同程式語言的正則表達式匹配效果。你可以存儲正則表達式,同時該工具也提供一些常用的表達式。
  • 正則表達式和 CPU 100%有什麼故事?
    我們可以看到所有的堆棧都指向了一個名為 validateUrl 的方法,這樣的報錯信息在堆棧中一共超過 100 處。通過排查代碼,我們知道這個方法的主要功能是校驗 URL 是否合法。很奇怪,一個正則表達式怎麼會導致 CPU 利用率居高不下。為了弄清楚復現問題,我們將其中的關鍵代碼摘抄出來,做了個簡單的單元測試。
  • Python程式語言:如何運用正則表達式
    這篇文章,小編要和大家分享的知識是Python語言的正則表達式,以及自己學到的使用方法!學會正則表達式可以幫助我們抓取網絡信息,正則表達式又叫Re庫!這裡我們要了解什麼是正則表達式,正則表達式是用來簡潔表達一組字符串的表達式!
  • linux - grep常用正則表達式,過濾文本內容
    正則表達式正則表達式就是一套處理大量的字符串而定義的規則和方法。通過正則表達式這些特殊字符號,可以快速的過濾、替換需要的內容。基礎正則表達式(Basic regular expression)1) ^ :例如 ^word 以word開頭的內容2)$ :例如 word$ 以word結尾的內容3)^$ :空行4).
  • Python(2):正則表達式的常見符號與作用,每個都有示例
    常見的正則表達式特殊符號為了便於讀者保存,這裡把符號以表格圖片的形式總結給大家,並就常見的正則表達式給出簡單的示例供大家參考、學習。點號(.)-匹配除換行符\n外的任意單個字符示例:a.o—匹配字母a和o且二者中間為任意單字符的字符串,如axo,a!
  • 正則表達式:如何匹配一個或多個字符?
    讀懂正則表達式就這麼簡單匹配純文本Ben是一個正則表達式。因為本身是純文本,所以看起來可能不像是一個正則表達式,但它的確是。正則表達式可以包含純文本(甚至可以只包含純文本)。當然,像這樣使用正則表達式是一種浪費,但把它作為我們學習正則表達式的起點還是很不錯的。