如需使用正規表示式的相關資訊,請參閱以型樣取代完全相符的內容。
將值轉換成正規表示式時,您可以利用正規表示式評估器來同時測試和編輯。
這些範例是正規表示式的常見用法。
錨定
在下列範例中,從「一般範例」開始,全部都不錨定。「正規表示式評估器」中的型樣依預設不錨定,這表示型樣可能出現在字串內的任意處。字串也可以包含其他字元。錨定的運作方式和大多數軟體程式中的「搜尋」特性一樣 - 搜尋文字本身或另一個文字內的文字。如果要錨定一些字元,請採用這項語法:
^ string$
"^" 和 "$" 錨定字串中的字元。當 "^" 和 "$" 在開頭和尾端出現時,分別代表字串開頭和結尾。"^" 字元必須是型樣的第一個字元,才具有此特殊意義;"$" 必須是型樣的最後一個字元,才具有此特殊意義。
比方說,如果要驗證內容值有特定的字元字串,請記得錨定此字串。假設在訂單表格中,如果客戶只有一筆訂單,則標籤是 "Order",如果客戶有多筆訂單,則標籤是 "Orders",而您想要確認這位客戶只有一筆訂單。在標籤的 text 內容上,將值改為正規表示式:
^Order$
在此範例中,"Order" 是唯一符合的值。"Orders" 不符。
一般範例
Notepad
假設您要判斷一個應用程式已開啟(例如 Notepad)。您可以在 caption 內容上利用正規表示式來驗證 "Notepad" 這個字出現在橫幅中。這個型樣要求 "Notepad" 這個字必須出現在值的任意處。如果標題的 text 內容是 "Report.txt - Notepad",表示「記事本」中已開啟檔案 Report.txt,因為含有字串 "Notepad",所以型樣相符。
預設行為是比對更大字串內的值。如果要比對獨特的一組字元,請利用上述的錨點標籤。
區分大小寫
[cC]ustomer
含有 "customer" 這個字的任何文字,不論是大寫或小寫 "c",皆符合這個型樣。這很重要,因為依預設會區分大小寫來做比較。
在「正規表示式評估器」中,您可以設定區分大小寫的選項。執行區分大小寫比對選項是預設值;比對會區分大小寫,這個範例剛好適用。若不區分大小寫,請清除勾選框。您也可以在物件對映或「驗證點編輯器」和「比較程式」的介面中設定區分大小寫。在這些工具中,當您用滑鼠右鍵按一下正規表示式值時,您可以在顯示的功能表中,按一下區分大小寫的正規表示式。
任何單一字元
payment.method
使用 "." 代表字串中的任何單一字元。除了字母和其他合法字元,也可以是空格或數字。在此範例中,"payment method" 和 "payment0method" 都符合。
零或多個重複字元
to*lbar
使用 "*" 字元代表前一個字元,不限數目,或代表零個字元。在這個範例中,"tlbar" 會通過;"tolbar"、"toolbar" 和 "tooooolbar" 也會通過。
一或多個重複字元
to+lbar
使用 "+" 字元代表前一個字元,不限數目。不同於 "*" 字元,差別在於 "+" 至少要有一個字元。因此,"tlbar" 不符合這個型樣;但 "tolbar"、"toolbar" 和 "tooooolbar" 符合。
零或一個重複字元
to?lbar
沒有符號前的字元或有符號前的一個字元可符合這個型樣。只有兩個字串符合這個語法:"tlbar" 和 "tolbar"。
萬用字元
Customer.*Order
使用 "." 和 "*" 字元進行萬用字元比對。這個型樣容許出現任何數目的任何字元。例如,應用程式有時在這個內容的兩個字之間插入一個空格,這個語法可含括兩者。
字元集的任何一個字元
Form[ABC]
只要 "Form" 這個字後面接著方括弧內的任何字元,就符合這個型樣。如果應用程式中有一個欄位列出已使用的表單,您可以利用這個正規表示式來比對這些字串:"FormA"、"FormB" 或 "FormC"。
字元集的任何數目的字元
Form[ABC]*
只要 "Form" 這個字後面接著方括弧內的其中一個字元,且該字元不限數目,就符合這個型樣。如果應用程式中有一個欄位會列出已使用的表單,則上述範例仍然符合:"FormA"、"FormB" 或 "FormC"。此外,一個字元出現多次也符合,例如 "FormAA" 或 "FormCCC",即使只有 "Form" 也一樣。
任何一個字元 Not
Form[^BE]
只要 "Form" 後面接著 "B" 或 "E" 以外的任何字元,就符合這個語法。例如,"FormA"、"FormC" 及 "FormG" 符合,但 "FormB" 或 "FormE" 不符。
英數字集
Form[A-G]
您可以指定一串連續的字母。在此語法中,"FormA"、"FormB"、"FormC"、"FormD"、"FormE"、"FormF" 及 "FormG" 符合,但 "FormH" 或 "FormM" 不符。英數範圍區分大小寫。"Forma" 不符。請利用這個語法來比對此範圍的大寫和小寫字母:"Form[a-gA-G]"。如果要比對標準英語字母表中的任何字母,請使用兩者的完整範圍:"Form[a-zA-Z]"。
邏輯 OR
OK|Cancel
假設對話框有三個按鈕:OK、Cancel 及 Help。如果要驗證已按下正確按鈕,請在按鈕 lable 內容中使用正規表示式。如果要確認已按下 OK 或 Cancel,而不是 Help,您可以利用這個語法。
群組表示式
My (purple|blue|green) kite
利用群組表示式來操作群組中的所有元素。例如,如果要在群組中套用運算子或在群組的每一個成員前面或後面尋找特定字串,您可以利用群組表示式。括弧是分組運算子,可利用 "|" 來分隔元素。在此範例中,"My purple kite"、"My blue kite" 及 "My green kite" 皆符合表示式。"My red kite" 或 "My kite" 不符。
字元類別
您可以在正規表示式中使用許多字元類別。
\d 任何數字
\D 非數字
\s 空格字元
(單一空白字元,例如空格、tab、換行或歸位)
\S 非空格字元
\w 單字字元(任何字母、數字或 "_")
比對非英語的字母。
\W 非單字字元
您可能想要比對訂單編號。例如:
Order\d
只要 "Order" 後面接著單一數字,就符合這個語法。"Order" 單獨一個字不符。這些範例符合:"Order5"、Order3" 及 "Order0"。"Order 3" 不符。
Order\d+
如果要使用多個數字,請利用這個型樣。\d+ 代表一或多個數字。例如,"Order77" 和 "Order235" 符合這個型樣。
Form\S
只要 "Form" 後面接著空格以外的任何字元,就符合這個型樣。如需驗證應用程式中的表單標籤以一個字母來表示表單,則需要測試,因為如果 "Form" 這個字後面沒有字母,則不相符。例如,"FormB" 和 "FormX" 符合。"Form" 和 "Form " 不符。
其他字元類別的運作方式同於這些範例。
特殊字元
下列範例使用一些特殊字元。這些字元在正規表示式中不視為文字字元,而是解讀為運算子。包括下列字元:
.
+
?
\
*
^
|
-
(", ")
[
]
如果在正規表示式中使用這些字元,則必須在字元前加上 "\" 來避開此字元。比方說,如果在標籤文字中需要使用括弧,則 text 內容可能是:
Orders \(shipped\)
在此範例中,標籤 "Orders (shipped)" 不符。在「驗證點編輯器」或物件對映中將值轉換成正規表示式時,如果原始值包含上述其中一個字元,Functional Tester 會自動避開字元。