正则表达式示例

可以将识别属性替换为正则表达式或数字范围以允许基于模式的识别。该模式允许在对象识别方面有更大灵活性。可以从验证点编辑器或对象图内将属性转换为正则表达式和数字范围。

关于使用正则表达式的信息,请参阅将精确匹配属性替换为模式

将值转换为正则表达式时,可以在编辑它时使用正则表达式求值程序对其进行测试。

正则表达式语法的示例

这些示例是正则表达式的典型用例。

锚定

自常规示例开始,以下所有示例都未锚定。缺省情况下,“正则表达式求值程序”中的模式均未锚定,这意味着该模式可以出现在字符串内的任何位置。该字符串可还以包含其他字符。 锚定的工作方式与“搜索”功能在大多数软件程序中的工作方式相同 - 搜索文本自身或嵌套在其他文本中的文本。如果希望锚定某项,请使用以下语法:

^ 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" 不匹配。

字符类

可以在正则表达式中使用若干字符类。

(单个空格字符,例如空格、跳格、换行或回车符)

匹配英语之外语言的字母。

可能希望匹配订单号。例如:

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 会为您将这些字符转义。


反馈