正規式和正則表達式的異同


正規式的定義及使用方法(轉自正規式)

設∑是有窮字母表,並定義輔助字母表∑’={Φ, ε, | , . , *, (, )}

  1. ε,Φ都是∑上的正規式,它們所表示的正規集為{ε}, Φ ;
  2. 任何a是一個正規式,若a∈∑,它所表示的正規集為{a};
  3. 如果R1和R2是正規式,它們表示的正規集分別為L1和L2,則 R1|R2 , R1·R2 , R1, (R1) 也是正規式,並且它們所表示的正規集分別為L1∪L2 ;L1L2;L1; L1
  4. 僅有有限次使用上述三步驟而定義的表達式才是∑上的正規式,僅有這些正規式表示的字集才是∑上的正規集。

注意:不要混淆Φ和ε,正規表達式ε描述的語言只含一個空字符串ε,而Φ表示的語言不含有任何字符串。 程序設計語言的單詞都能用正規式來定義。若兩個正規式e1,e2表示的正規集相同,則稱它們等價。記作:e1=e2。

例 : 令∑={a,b},則∑上的正規式和相應正規集為

正規式 正規集
a {a}
a|b {a,b}
ab {ab}
(a|b)(a|b) {aa,ab,ba,bb}
* {ε ,a,aa, ……任意個a的串}
(a|b)* {ε ,a,aa, ……任意個a的串}{ε ,a,b,aa,ab,bb ……所有由 a和b組成的串}
(a|b)(aa|bb)(a|b)* ∑上所有含有兩個相繼的a或兩個相繼的b組成的串}

正則表達式的定義和用法

  正則表達式是對字符串(包括普通字符(例如,a 到 z 之間的字母)和特殊字符(稱為“元字符”))操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規則字符串”,這個“規則字符串”用來表達對字符串的一種過濾邏輯。正則表達式是一種文本模式,模式描述在搜索文本時要匹配的一個或多個字符串。

給定一個正則表達式和另一個字符串,我們可以達到如下的目的:
  1. 給定的字符串是否符合正則表達式的過濾邏輯(稱作“匹配”):
  2. 可以通過正則表達式,從字符串中獲取我們想要的特定部分。
 
1)相同點
    都是一種模式,用來匹配驗證的一種規則。
 
   (2)不同點
      正規式:多和有限自動機相互轉換,來判斷是否和相應的輸入輸出對應。
    正則表達式:多用於輸入的驗證,在客戶端輸入的時候就去驗證輸入的東西是否符合要求,大大減少了后台的判斷。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM