Regex VBScript正则表达式问题(.*)
我在QTP中使用VBscript,我有点困惑:Regex VBScript正则表达式问题(.*),regex,vbscript,qtp,Regex,Vbscript,Qtp,我在QTP中使用VBscript,我有点困惑: Browser("name:=.*") //works 为什么浏览器(“name:=*”不工作?为什么有一个字符 谢谢大家! 虽然普通通配符(例如shell中用于一次指定多个文件的通配符,例如*.txt)仅使用askterisk(*)作为零个或多个任意字符的符号,但在正则表达式中它是一个符号。它告诉正则表达式引擎一些关于前面标记的信息。A匹配单个任意字符,点后跟星号,因此匹配零个或多个任意字符 但是,一个=后跟一个*将匹配0个或多个等号(=)-因
Browser("name:=.*") //works
为什么浏览器(“name:=*”
不工作?为什么有一个
字符
谢谢大家! 虽然普通通配符(例如shell中用于一次指定多个文件的通配符,例如*.txt
)仅使用askterisk(*
)作为零个或多个任意字符的符号,但在正则表达式中它是一个符号。它告诉正则表达式引擎一些关于前面标记的信息。A匹配单个任意字符,点后跟星号,因此匹配零个或多个任意字符
但是,一个=
后跟一个*
将匹配0个或多个等号(=
)-因为星号始终作用于前面的标记,而这正是此处的等号
注意:一个标记可以是很多东西,一个字符,如=
,一个字符类,如
,\w
或[A-z]
,一个组,如(abc)
,它将匹配任何字符串,如abcabc
,&c。这使得您可以定义比普通的旧通配符更丰富的表达式类型
一般来说,通配符和正则表达式之间的以下等价关系大约成立;有些细节可能不太明显:
Wildcard Regex
-------- -----
* .*
? .
[a-z] [a-z]
*
表示:匹配一个表达式,其中*
左侧的字符出现0次或更多次<代码>表示“匹配任何字符”。所以*
意味着:匹配任何字符0次或更多次。在第二个表达式中,*前面有一个等号,因此它的意思是:匹配0个或多个等号。只不过是QTP帮助页面的副本
在正则表达式的编写模式中使用特殊字符和序列。下表描述并给出了可使用的字符和序列的示例
字符描述
\将下一个字符标记为特殊字符或文字。例如,“n”与字符“n”匹配。“\n”与换行符匹配。序列“\”匹配“\”和”(“匹配”()
^匹配输入的开头
$匹配输入的结尾
*与前面的字符零次或多次匹配。例如,“zo*”与“z”或“zoo”匹配
+匹配前面的字符一次或多次。例如,“zo+”匹配“zoo”,但不匹配“z”
?与前面的字符零次或一次匹配。例如,“a?ve?”与“从不”中的“ve”匹配
.匹配除换行符以外的任何单个字符
(pattern)匹配pattern并记住匹配项。可以使用项[0]…[n]从结果Matches集合中检索匹配的子字符串。若要匹配括号字符(),请使用“(”或“)”
x | y匹配x或y。例如,“z | wood”匹配“z”或“wood”。(z | w)oo“匹配“zoo”或“wood”
{n} n是非负整数。正好匹配n次。例如,“o{2}”与“Bob”中的“o”不匹配,但与“fooood”中的前两个o匹配
{n,}n是一个非负整数。至少匹配n次。例如,“o{2,}”不匹配“Bob”中的“o”,而是匹配“fooood”中的所有o。“o{1,}”相当于“o+”。“o{0,}”相当于“o*”
{n,m}m和n是非负整数。至少匹配n次,最多匹配m次。例如,“o{1,3}”匹配“foooood”中的前三个o。“o{0,1}”相当于“o?”
[xyz]字符集。匹配任何一个封闭字符。例如,“[abc]”匹配“普通”中的“A”
[^xyz]一个负数字符集。匹配任何未包含在内的字符。例如,“[^abc]”匹配“普通”中的“p”
[a-z]字符范围。匹配指定范围内的任何字符。例如,“[a-z]”匹配“a”到“z”范围内的任何小写字母字符
[^m-z]一个负范围字符。匹配不在指定范围内的任何字符。例如,“[m-z]”匹配不在“m”到“z”范围内的任何字符
\b匹配单词边界,即单词和空格之间的位置。例如,“er\b”匹配“从不”中的“er”,但不匹配“动词”中的“er”
\B匹配非单词边界。“ea*r\B”匹配“从不早”中的“ear”
\d匹配一个数字字符。相当于[0-9]
\D匹配非数字字符。相当于[^0-9]
\f匹配表单提要字符
\n匹配换行符
\r与回车符匹配
\s匹配任何空格,包括空格、制表符、表单提要等,相当于“[\f\n\r\t\v]”
\S匹配任何非空白字符。相当于“[^\f\n\r\t\v]”
\t匹配制表符
\v匹配垂直制表符
\w匹配包括下划线在内的任何单词字符。相当于“[A-Za-z0-9_]”
\W匹配任何非单词字符。相当于“[^A-Za-z0-9_3;]”
\num匹配num,其中num是一个正整数。返回到记住的匹配的引用。例如,“()\1”匹配两个连续的相同字符
\n匹配n,其中n是八进制转义值。八进制转义值必须为1、2或3位。例如,“\11”和“\011”都匹配制表符。“\0011”相当于“\001”和“1”.八进制转义值不得超过256。如果超过256,则只有前两位数字构成表达式。允许在正则表达式中使用ASCII码
\xn匹配n,其中n是十六进制转义值。十六进制转义值必须正好有两位数长。例如,“\x41”匹配“a”。“\x041”相当于“\x04”和“1”。允许在正则表达式中使用ASCII码。谢谢。我如何告诉引擎它应该这样做