尋找文字的規則運算式

使用規則運算式,可以在 Microsoft Expression Web 中進行較複雜的尋找及取代作業。不知道所要尋找的實際文字或程式碼時,或利用一或多個相似項目來尋找所有出現的文字或程式碼字串時,規則運算式十分有用。

規則運算是就是一種文字模式,說明一或多種想要搜尋的文字或程式碼之變化。規則運算式包含特殊字元,例如字母 "a" 到 " z",以及說明文字模式的特殊字元,例如星號 (*)。舉例來說,當您要尋找網站中的所有 "page" 的變化時,即可搜尋 "page*"。如此一來,Expression Web 除了會尋找網站中所有的 "page"、"pages"、"pager" 之外,還會尋找所有以 "page" 開頭的字。

在搜尋中使用規則運算式時,有特定的規則控制何種字元組合執行特定的尋找。每個規則運算式或規則運算式的組合,都稱為語法。在單一語法中可使用多個規則運算式,精準地執行您的搜尋。

若要使用規則運算式,請參閱尋找及取代文字與程式碼

規則運算式語法

語法

運算式描述

.

任何作為萬用字元的字元,其可用以尋找任何單一列印或非列印字元,但換行字元 (\n) 除外。

例如,規則運算式 c.t 會尋找字串 cat、c t、cot,但 cost 除外。在這個例子中,句號 (.) 是單一字元的萬用字元。它出現在字母 'c' 及 't' 之間,所以任何出現於字母 'c' 及 't' 之間的單一字元都符合此項運算式 (空格亦然)。

*

最大值 ─ 會找到運算式之前出現零或多個字元的相符項目 (盡可能符合最多字元)。

運算式 .* 會找到出現一或多次某個字元的項目。

例如,規則運算式 b.*k 會尋找 book、back、black、blank 以及 buck。在此範例中,結合了句點 (.) 與星號 (*),以產生一個語法。句號 (.) 緊跟在星號 (*) 運算式之前出現。星號 (*) 會找到任何介於字母 'b 及 'k' 間出現零或更多個任意字元的項目。而句點 (.) 就是 'b' 及 'k' 之間字元的萬用字元。在這個例子中,它表示任何出現於 'b' 及 'k' 之間的字元都可以重複。

+

最大值 ─ 會找到運算式之前出現一或多個字元的相符項目 (盡可能符合最多字元)。

規則運算式 .+ 會找到出現一或多次某字元的項目。

例如規則運算式 bo+. 會找到 bob、book 與 boot。在此範例中,結合了句點 (.) 與加號 (*),以產生一個語法。句點 (.) 會緊跟在加號 (+) 運算式之後出現。加號 (+) 代表字母 'o' 出現一或多次的相符項目。句點 (.) 就是每個字最後一個字元的萬用字元,在此範例中為 'b'、'k' 與 't'。

@

最小值 ─ 會找到運算式之前出現零或多個字元的相符項目 (盡可能符合最少字元)。

規則運算式 .@ 表示會會找到出現零或多次某字元的項目。

例如,規則運算式 a.@x 會找到 'abxbxb' 內的 'abx' 與 'acxcxc' 內的 'acx'。在此範例中,結合了句點 (.) 與 @ 符號,以產生一個語法。句點 (.) 會緊跟在 @ 符號運算式之前出現。@ 符號會找到任何介於字母 ''a 與 'x' 間出現零或更多個任意字元的項目。在此範例中,句點 (.) 就是 'a' 與 'x' 兩個字元間的 'b' 與 'c' 等字元的萬用字元。

#

最小值 ─ 會找到運算式之前出現一或多個字元的相符項目 (盡可能符合最少字元)。

例如,規則運算式 si.#er 會找到 'sicker' 或 'silkier'。在此範例中,結合了句點 (.) 與井字號 (#),以產生一個語法。句點 (.) 會緊跟在井字號 (#) 運算式之前出現。井字號 (#) 會找到任何介於 'si' 與 'er' 間出現一或多個任意字元的項目。句點 (.) 就是 sicker 這個字之中 'c' 與 'k' 字元的萬用字元,以及 silkier 這個字之中 'l'、'k' 與 'i' 等字元的萬用字元。

[ ]

一組字元,會尋找在括號 ([ ]) 中出現的任何字元。您可以用連字號 (-) 來指定字元的範圍,如 [a-z]。

例如:

  • 規則運算式 c[aou]t 會尋找 cat、cot 及 cut,但 cet 或 cit 除外。

  • 規則運算式 [0-9] 表示尋找任何數字。您也可以指定字母的多重範圍。

  • 規則運算式 [A-Za-z] 表示尋找所有大小寫的字母。

^

行首會標示符合行首的項目。

例如,規則運算式 ^When in 會尋找任何以 "When in" 開始的字串,且出現在行首,如 "When in the course of human events" 或 "When in town, call me"。若 "What and when in the course of human events" 出現在行首,此規則運算式將不會找到它。

$

行尾會標示符合行尾的項目。

例如,規則運算式 professional$ 會找到字串 "He is a professional" 的結尾,但不會找到 "They are a group of professionals" 的字串。

^^

檔案開頭會標示符合檔案開頭的項目。這只有在原始程式碼或文字檔中搜尋文字時適用。

例如,若要在檔案開始處尋找第一個 HTML 標籤,請使用下列規則運算式:^^

$$

檔案結尾會標示符合檔案結尾的項目。這只有在原始程式碼或文字檔中搜尋文字時適用。

例如,若要在檔案結尾處尋找最後一個 HTML 標籤 (標籤後不含空格),請使用下列規則運算式:$$

|

或表示兩個項目間的選擇,亦即尋找在 OR 符號 (|) 之前或之後的運算式。

例如,規則運算式 (him|her) 會尋找 "it belongs to him" 或 "it belongs to her" 的相符項目,但不會尋找 "it belongs to them" 的相符項目。

\

特殊 ESC 鍵字元會尋找在反斜線 ( \ ) 之後的字元。它允許您尋找在規則運算式語法中使用的字元,例如左大括號 ({)、^ 或一些其他的特殊字元。

例如,您可以使用 \$ 來尋找貨幣符號字元 ($),而不需執行規則運算式「標示相符於行尾的項目」。同樣地,您也可以使用運算式 \. 來尋找句點 (.) 字元,而不需以句點 (.) 規則運算式尋找單一字元。

{}

標籤運算式會將內含的運算式所找到的文字加上標籤。您可以在 Find 運算式中尋找另一個標籤文字,或是在 Replace 運算式中使用 \N 以插入標籤文字。

例如,假設想要尋找兩個重複且連續的文字。若要進行搜尋,請使用下列運算式:{.#} \1

在連續字是用單一空格隔開的假設前提下,會要在右大括號 (}) 與反斜線 ( \ ) 之間加上空格。

在此範例中,結合了將井字號 (#) 及句號 (.) 與大括號 ({}) 結合,以產生一個語法。在此運算式中,.# 代表任一連續字元。由於這部分的運算式會以大括號 ({}) 括住,因此連續字元將會被加上標籤,並可以 \1 表示。若有一段連續字元,其後依序為空格與相同的一段連續字元,此運算式將可找出此連續字元。

\N

Find 運算式中的第 N 個標籤運算式,\N 會尋找符合第 N 個標籤運算式的文字,其中 N 為 1 到 9 的數字。

在 Replace 運算式中,\N 會插入符合第 N 個標籤運算式的文字,其中 N 為數字 1 到 9。\0 會插入符合整個 Find 運算式的文字。

例如,假設想要尋找兩個重複且連續的文字,並將它們取代為單一文字。若要進行搜尋,請使用下列運算式:{.#} \l

在連續字是用單一空格隔開的假設前提下,會要在右大括號 (}) 與反斜線 ( \ ) 之間加上空格。在此範例中,結合了井字號 (#) 及句號 (.) 與大括號,以產生一個語法。

若要進行取代,請使用下列運算式:\l

\1 代表尋找字串中第一對大括號中所找到的項目。在取代動作中使用 \1,則是要用單一文字取代重複且連續的文字。

( )

群組運算式會在子運算式的開頭與結尾加上標示。

子運算式是指加上括號 ( ) 的規則運算式,例如下列運算式:(ha)+。在此範例中,結合了加號 (+) 與括號 ( ) 群組運算式,以產生一個語法。(ha) 包含在括號 ( ) 內,所以它是子運算式。新增加號 (+) 時,運算式可讓您尋找重複成對的字母。加號 (+) 代表出現一或多次 'ha'。

此運算式符合下列字串:'haha' 及 'hahaha'。

~x

「不尋找」可於 x 出現在運算式中的這個位置上時,不進行尋找。

例如,規則運算式 real~(ity) 會找到 "realty" 及 "really" 中的 "real",但並不會找 "reality" 中的 "real"。

\n

分行符號在 [程式碼] 檢視中會尋找新行,在 [設計] 檢視中則會尋找 <br>。

語法 (\n) 是讓您尋找所有分行符號的簡速方法。

\t

定位點會尋找單一定位字元。

例如,若您想要在行首尋找所有的單一定位字元,規則運算式如下:

^\t+

在此範例中,結合了 ^ 符號及加號 (+) 與定位點 (\t),以產生一個語法。^ 符號位在單一定位點字元運算式之前,會尋找行首處符合所有定位點字元的項目。加號 (+) 代表符合一或多個定位點字元。

[^]

任何不在字元集內的字元會尋找 ^ 之後任何不在字元集內的字元。

例如,若要尋找任何不在範圍內的字元,請將 ^ 符號在左括號後設為第一個字元。運算式 [^269A-Z] 會尋找除了 2、6、9 及其他大寫字母以外的字元。

n

重複運算式會尋找運算式 ^ 前之 n 個相符項目。

例如,若 n 等於 4,運算式 [0-9]^4 就會尋找所有 4 位數的數字。在此範例中,結合了此組字元 ([ ]) 語法與重複 (^n) 語法,以示範較實際的規則運算式用法。

:a

運算式 [a-zA-Z0-9] 會找到英數字元。

您可以使用下列運算式:[a-zA-Z0-9] 來尋找單一字母 (可以是大寫或是小寫),或是數字。也稱為英數字元。您可以在所有的 [a-zA-Z0-9] 出現處中使用速記運算式 :a。

:b

空白字元會找到程式碼或文字中的任何空白字元。

例如,若要在每一行的開始尋找單一空格字元,請使用下列的規則運算式:^:b

:c

字母字元會找到運算式 [a-zA-Z]。當您使用此運算式時,它可讓您尋找所有大寫或小寫的字母。

您可以在 [a-zA-Z] 的所有出現處中使用速記運算式 :c。

:d

運算式 [0-9] 會找到十進位數字。此運算式可讓您尋找任何數字。

例如,若要在文字檔中尋找社會安全號碼。美國的社會安全號碼格式為 999-99-9999。:d^3-:d^2-:d^4 或使用 [0-9],會得到與運算式:[0-9]^3-[0-9]^2-[0-9]^4] 相同的結果。

您可以在 [0-9] 的所有出現處中使用速記運算式 :d 。

:h

運算式 [0-9a-fA-F]+ 會找到十六進位數字。

當您想要尋找結合十六進位,且出現在 'A' 及 'F' 之間的任何大寫或小寫字母以及所有數字時,請使用此運算式。

例如,假設在網站上的網頁有多個不同的背景色彩,而您想要將那些網頁的色彩變成黑色 (如 000000)。但您不知道現有色彩的十六進位數字。請使用下列規則運算式來尋找現有的十六進位數字:

\#:h

可使用 [0-9a-fA-F] 進行搜尋,但在此範例中,結合了反斜線 (\) 及井字號 (#) 與十六進位數字 (:h) 語法。\# 會找到非運算式井字號 (#),而 :h 會找任何十六進位字元的數字。

若要取代現有的十六進位數字,請鍵入想要使用之背景色彩的十六進位數字:000000

:i

運算式 [a-zA-Z_$][a-zA-Z0-9_$]* 會找到識別碼

在使用程式碼時,若想要尋找所有程式的識別碼,可以使用速記運算式 :i 來取代上述必須鍵入冗長字數的運算式。

:n

運算式 ([0-9]+\.[0-9]*)|([0-9]*\.[0-9]+)|([0-9]+) 會找到有理數

若想要尋找所有含有小數點的數字,可以使用速記運算式 :n 取代上述必須鍵入冗長字數的運算式。

:q

運算式 ("[~"]*")|('[~']*') 會找到加上引號的字串

若想要尋找用引號括住的引號,可以使用速記運算式 :q 取代上述必須鍵入冗長字數的運算式。

:w

運算式 [a-zA-Z]+ 會找到字母字串

此語法是讓您尋找一或更多字母字元的捷徑 (可以是大寫或是小寫)。

:z

運算式 [0-9]+ 會找到十進位整數

此語法是讓您尋找任何零或更多數字的捷徑。

請參閱

概念

尋找及取代文字與程式碼

尋找及取代標籤

設定尋找文字的 HTML 規則

使用同義字