关于使用正则表达式的信息,请参阅将精确匹配属性替换为模式。
将值转换为正则表达式时,可以在编辑它时使用正则表达式求值程序对其进行测试。
这些示例是正则表达式的典型用例。
锚定
自常规示例开始,以下所有示例都未锚定。缺省情况下,“正则表达式求值程序”中的模式均未锚定,这意味着该模式可以出现在字符串内的任何位置。该字符串可还以包含其他字符。 锚定的工作方式与“搜索”功能在大多数软件程序中的工作方式相同 - 搜索文本自身或嵌套在其他文本中的文本。如果希望锚定某项,请使用以下语法:
^ string$
"^" 和 "$" 锚定字符串中的字符。分别在开头和结尾找到时,"^" 表示字符串的开头而 "$" 表示结尾。仅在 "^" 字符是模式中的第一个字符时,它才具有此特殊含义;仅在 "$" 是模式中的最后一个字符时,它才具有此含义。
例如,如果希望验证属性值是否具有特定字符串,请确认您是否将其锚定。假定在客户仅有一个订单的情况下订单表中的标签为 "Order",如果客户具有多份订单,那么为 "Orders",而您希望确认该客户仅有一份订单。在标签的文本属性上,将值更改为正则表达式:
^Order$
在此情况下,"Order" 是唯一匹配的值。"Orders" 不匹配。
常规示例
记事本
假定您希望确定某个应用程序(例如记事本)已打开。可以使用关于文字说明属性的正则表达式来验证单词 "Notepad" 是否显示在条幅上。该模式要求单词 "Notepad" 显示在值内的任何位置。如果文字说明的文本属性是 "Report.txt - Notepad"(意味着记事本已打开并带有称为 Report.txt 的文件),那么该属性匹配,因为它包含字符串 "Notepad"。
缺省行为是匹配较大字符串内包含的值。要匹配字符的排除集,请按以上所述使用锚点标记。
区分大小写
[cC]ustomer
该模式允许包含具有大写或小写 "c" 的单词 "customer" 的任何文本通过。这很重要,因为缺省情况下比较是区分大小写的。
在“正则表达式求值程序”中,可以设置区分大小写的选项。执行区分大小写匹配选项是缺省值;匹配是区分大小写的,而所示的此示例很有用。 要忽略大小写,请清除该复选框。还可以在对象图或验证点编辑器和比较器的界面中设置区分大小写。 在那些工具中,右键单击正则表达式值时,可以单击快捷菜单中的区分大小写正则表达式。
任何单一字符
payment.method
使用 "." 来指示字符串中的任何单一字符。除了字母和其他合法字符,字符可以为空格或数字。在此情况下,"payment method" 和 "payment0method" 都匹配。
零个或更多重复字符
fo*bar
使用 "*" 字符来指示任意数量的先前字符或零个字符。 在本示例中,"fbar" 可通过;"fobar"、"foobar" 和 "fooooobar" 可通过。
一个或多个重复字符
fo+bar
使用“+”字符来指示任意数量的先前字符。 这与 "*" 字符之间的差异是,对于 "+",您必须至少具有一个此字符。因此 "fbar" 不匹配此模式,但是 "fobar"、"foobar" 和 "fooooobar" 匹配。
零个或一个重复字符
fo?bar
该模式表示该符号之前没有字符或有一个该字符将通过。仅有两个字符串匹配此语法:"fbar" 和 "fobar"。
通配符
Customer.*Order
将 "." 和 "*" 字符用于通配符匹配。该模式允许显示任意数量的任意字符。例如,如果应用程序有时在此属性中两个单词之间插入空格,那么该语法将涵盖两种情况。
来自一个集的任何一个字符
Form[ABC]
该模式允许后面跟着方括号内任一字符的单词 "Form" 匹配。如果应用程序中的字段列出所用表单,那么可以使用此正则表达式来匹配以下字符串:"FormA" 、"FormB" 或 "FormC"。
来自一个集的任意数量字符
Form[ABC]*
这表示后面跟着方括号内任意数量的某个字符的单词 "Form" 将匹配此正则表达式。如果在应用程序中有个字段列出在使用哪个表单,那么以上所示示例将仍然通过:"FormA"、"FormB" 或 "FormC"。此外,一个字符的多次重复将匹配(例如 "FormAA" 或 "FormCCC"),仅有 "Form" 也匹配。
非特定字符的任一字符
Form[^BE]
该语法允许后接任一字符(除 "B" 或 "E" 之外)的单词 "Form" 匹配。 例如,"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
确定|取消
可以具有带以下三个按钮的对话框:“确定”、“取消”和“帮助”。要验证是否单击了右按钮,请使用按钮标签属性的正则表达式。如果希望确认单击了“确定”或“取消”,而不是“帮助”,那么可以使用此语法。
组表达式
My (purple|blue|green) kite
使用组表达式来对组中所有元素进行操作。例如,要将运算符应用于组或查找组的每个成员之前或之后的特定字符串,可以使用组表达式。括号是分组运算符,您使用“|”来分隔元素。在此示例中,"My purple kite"、"My blue kite" 和 "My green kite" 匹配表达式。 "My red kite" 或 "My kite" 不匹配。
字符类
可以在正则表达式中使用若干字符类。
\d 任何数字
\D 非数字
\s 空格字符
(单个空格字符,例如空格、跳格、换行或回车符)
\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" 不匹配。
其他字符类以与这些示例相同的方式工作。
特殊字符
这些示例使用某些特殊字符。这些字符在正则表达式中不用作文字字符,而是用作运算符。这些字符包含以下字符:
.
+
?
\
*
^
|
-
(", ")
[
]
如果在正则表达式中使用这些字符,那么必须通过在该字符之前加上“\”来将其转义。例如,如果需要在标签的文本中加括号,那么可能具有此文本属性:
Orders \(shipped\)
在此情况下,标签 "Orders (shipped)" 不匹配。在验证点编辑器或对象图中将值转换为正则表达式时,如果原始值包含其中一些字符,那么 Functional Tester 会为您将这些字符转义。