正则表达式字符和用法选项
相关项: GUI 测试和组件以及 API 测试
此部分介绍了一些可用于创建正则表达式的较常见选项:
反斜杠字符 (\) |
反斜杠 (\) 有两种用途。它可以与特殊字符一起使用,指示将下一个字符作为文字字符来处理。例如,会将 \. 作为句点 (.) 而不是通配符来处理。第二种用途是,反斜杠 (\) 可以与某些还可以作为文字的字符 (比如,n、t、w 或 d) 一起使用,组合后指示特殊字符。例如,\n 代表换行符。 如果反斜杠字符不用于上述任一用途,则会忽略它。 例如:
例如,如果您正在查找名为 www.advantageonlineshopping.com 的网站,则句点会被误认为表示正则表达式。要指示句点不是正则表达式的一部分,可以将其输入为 www\.advantageonlineshopping\.com |
匹配任何单一字符 (.) |
句点 (.) 指示 UFT One 搜索任何单一字符 (除 \n 外)。 例如: welcome. 将匹配 welcomes、welcomed 或者后跟空格或任何其他单一字符的 welcome。一组句点指示相同个数的未指定字符。 要匹配任何单一字符 (包括 \n),请输入 (.|\n) |
匹配列出的任何单个字符 ( [xy] ) |
方括号指示 UFT One 搜索列出字符中的任何单个字符。 例如,要搜索日期 1967、1968 或 1969,请输入 196[789] |
匹配除列出的字符外的任何单个字符 ( [^xy] ) |
当脱字符号 (^) 是方括号内的第一个字符时,指示 UFT One 匹配除列出字符串中指定字符之外的任何字符。 例如,[^ab] 将匹配除 a 或 b 外的任何字符 脱字符号只有显示在方括号内的第一个字符位置时才具有这一特殊意义。 |
匹配范围内的任何单个字符 ( [x-y] ) |
要匹配范围内的单个字符,可以将方括号 ([ ]) 与连字符 (-) 结合使用。 例如,要匹配 20 世纪 60 年代的任何年份,请输入 196[0-9] 如果连字符在方括号中的第一个字符或最后一个字符位置,或在脱字符号 (^) 后面的位置,则连字符不表示范围。 例如,[-a-z] 匹配连字符或任何小写字母。 在方括号中,字符 "."、"*"、"[" 和 "\" 代表其文字字符。例如,[.*] 将匹配 . 或 *。如果右括号是范围中的第一个字符,则它还具有字面意义。 |
匹配特定字符零次或多次 ( * ) |
星号 (*) 指示 UFT One 匹配前面的字符零次或多次。 例如,ca*r 将匹配 car、caaaaaar 和 cr。 |
匹配特定字符一次或多次 ( + ) |
加号 (+) 指示 UFT One 匹配前面的字符一次或多次。 例如,ca+r 将匹配 car 和 caaaaaar,但不匹配 cr |
分组正则表达式 ( ( ) ) |
圆括号 (()) 指示 UFT One 像数学和编程语言那样将括起的序列作为一个单元来处理。 在将参数界定到管道符 ( | ) 或重复操作符时,使用组尤其有用: (*、+、? 、{ }) |
匹配其中某个正则表达式 ( | ) |
竖线 (|) 指示 UFT One 匹配某个正则表达式选项。 例如,foo|bar 会使 UFT One 匹配 foo 或 bar。相反,fo(o|b)ar 会使 UFT One 匹配 fooar 或 fobar |
匹配开始的位置 ( ^ ) |
脱字符号 (^) 指示 UFT One 仅匹配表达式的开始位置或换行符之后的位置。 例如,book 将匹配 book, my book 和 book list 行中的 book,而 ^book 仅匹配 book 和 book list 行中的 book |
匹配结束的位置 ( $ ) |
美元符号 (($) 指示 UFT One 仅匹配表达式的结束位置。 例如,book 将匹配 my book 和 book list 行中的 book,而后跟 (\n)、(\r) 或 ($) 的字符串仅匹配以该字符串结尾的行。 例如,book$ 仅匹配 my book 行中的 book |
匹配换行符或回车符 ( \n ) 或 ( \r ) |
\n 或 \r 指示 UFT One 仅匹配后跟换行符或回车符的表达式。
例如,book 将匹配 my book 和 book list 行中的 book 后跟 (\n) 或 (\r) 的字符串仅匹配后跟换行符或回车符的行。 例如,仅当 book 后跟回车符时,book\r 才匹配 book |
匹配所有字母数字字符和下划线 ( \w ) |
\w 指示 UFT One 匹配所有的字母数字字符和下划线 (A-Z,a-z,0-9,_) 。 例如,\w* 会使 UFT One 匹配字母数字字符 (A-Z、a-z、0-9) 和下划线 (_) 零次或多次。它匹配 Ab、r9Cj 或 12_uYLgeu_435。 例如,\w{3} 会使 UFT One 匹配字母数字字符 (A-Z、a-z、0-9) 和下划线 (_) 3 次。它匹配 Ab4、r9_ 或 z_M。 |
匹配任何非字母数字字符 ( \W ) |
\W 指示 UFT One 匹配除字母数字字符和下划线外的任何字符。 例如,\W 将匹配 &、*、^、%、$ 和 # |
匹配十进制数字 ( \d ) |
\d 指示 UFT One 匹配任何十进制数字。 例如,\d 将匹配 1、2、4 和 5 |
匹配整数 ( \D ) |
\D 指示 UFT One 匹配任何整数。 例如,\D 将匹配 145643、20、3426767、4 和 5 |
结合使用正则表达式操作符 |
您可以在一个表达式中运用多个正则表达式操作符来实现所需的精确搜索条件。 例如,可以结合使用 '.' 和 '*' 字符以找到任何字符 (除 \n 外) 零次或多次。 例如,start.* 将匹配 start、started、starting 和 starter 您可以结合使用方括号和星号以将搜索限制在非数字字符组合。例如,[a-zA-Z]* 要匹配 0 到 1200 之间的任何数字,需要匹配 1 位数、2 位数、3 位数或 1000 到 1200 之间的 4 位数。 此正则表达式将匹配介于 0 到 1200 之间的任何数字: ([0-9]?[0-9]?[0-9]|1[01][0-9][0-9]|1200) |
注释: 有关更多详细信息,请参阅VBScript 参考和 cplusplus.com ECMAScript syntax。