共用方式為


字元比對

更新:2007 年 11 月

除了字串中的一個單一可列印或不可列印字元外,句號 (.) 能夠比對所有字元,但是新行字元 (\n) 例外。下列規則運算式比對 aac、abc、acc、adc、等等,以及 a1c、a2c、a-c 和 a#c:

/a.c/

若要比對包含檔案名稱的字串,並且檔案名稱中的句號 (.) 屬於輸入字串的一部分,請在規則運算式中的句號之前加上反斜線 (\) 字元。舉例而言,下列規則運算式比對 filename.ext:

/filename\.ext/

這些運算式只讓您比對「任何」的單一字元。您可能想要從清單比對特殊字元。例如,可能想要找出以數字方式表示的章節標題 (Chapter 1、Chapter 2 等等)。

括號運算式

若要建立比對字元請單,請在方括弧 ([ 和 ]) 內置入一個或多個個別字元。當將字元封入在括號中時,這個清單就稱為「括號運算式」。就像別處一樣,括號內的任何一般字元都代表其本身,即它比對在輸入字元中的本身項目。當特殊字元出現在括號運算式內部時,大部分的特殊字元會失去原義,但有以下的例外:

  • 如果 ] 字元不是第一項項目,則結束清單。若要在清單中比對 ] 字元,請緊接在開頭的 [ 字元之後先置入 ] 字元。

  • \ 字元繼續當做逸出字元。若要比對 \ 字元,請使用 \\。

封入在括號運算式中的字元,只會比對位於該規則運算式中該位置的單一字元。下列規則運算式比對 Chapter 1、Chapter 2、Chapter 3、Chapter 4 和 Chapter 5:

/Chapter [12345]/

請注意,Chapter 這個字與之後的空格一定會位於括號內字元的相對位置。括號運算式只是用來指定能夠比對 Chapter 這個字與空格之後的單一字元位置,即第九個字元位置。

若要使用範圍來表達比對字元,而不是使用字元本身,請使用連字號 (-) 字元來分隔用來指定範圍的開頭字元及結束字元。個別字元的字元值決定範圍內的相對順序。下列規則運算式包含一個範圍運算式,等同於上述包含括號的清單。

/Chapter [1-5]/

當以此方式指定範圍時,開始值及結束值都會包含在範圍內。請注意,就 Unicode 排序次序而言,開始值的優先順序高於結束值。

若要將連字號字元納入括號運算式中,請執行下列其中一項動作:

  • 使用反斜線逸出連字號字元:

    [\-]
    
  • 將連字號字元放置在括號清單的開頭或結尾。下列運算式比對所有小寫字母及連字號:

    [-a-z]
    [a-z-]
    
  • 建立開頭字元值小於連字號字元且結束字元值等於或大於連字號字元的字元範圍。下列兩個規則運算式都符合這個需求:

    [!--]
    [!-~]
    

若要尋找不在清單或範圍內的所有字元,請在清單的開頭置入插入號 (^) 字元。如果插入號字元出現在清單內的任何其他位置,則會比對本身。下列規則運算式會進行章節標題數字大於 5 的比對:

/Chapter [^12345]/

在前面的範例中,運算式比對位於第九個位置之 1、2、3、4 或 5 以外的任何數字字元。例如,所以 Chapter 7 相符,且 Chapter 9 也相符。

前面的運算式可使用連字號字元 (-) 來表示:

/Chapter [^1-5]/

一般會使用括號運算式的情況是,指定任何大寫或小寫字母字元或任何數字的比對。下列運算式能夠指定這樣的比對:

/[A-Za-z0-9]/

請參閱

其他資源

規則運算式簡介