如何使用正則表達式?
QTP使用正則表達式有2種方式,一種是在“常量值選項”對話框或“參數(shù)選項”對話框的“值”框中輸入字符串的正則表達式語法,可以定義正則表達式。選中“正則表達式”復選框,以指示QuickTest將該值作為正則表達式處理。另一種是使用描述性https://www.52fb.cn,所有https://www.52fb.cn描述屬性值都均自動作為正則表達式處理。注意:您可以只將正則表達式應用于字符串類型的值。默認情況下,除了句點(.)、連字符(-)、星號(*)、插字號(^)、方括號([ ])、圓括號(())、貨幣符號($)、垂直線(|)、加號(+)、問號(?)和反斜杠(\)以外,QuickTest將正則表達式中的所有字符作為文字處理。當一個特殊字符前面帶有反斜杠(\)時,QuickTest將其作為文字字符處理。如果在“常量值選項”或“參數(shù)選項”對話框的“值”框中輸入一個特殊字符,QuickTest會詢問您是否要在每個特殊字符前面添加一個反斜杠(\)。如果單擊“是”,則相應的特殊字符前面就會加上一個反斜杠(\),以指示QuickTest將該字符作為文字處理。如果單擊“否”,QuickTest將該特殊字符作為正則表達式字符處理。本節(jié)描述某些更常用的選項,可用于創(chuàng)建正則表達式:? 使用反斜杠字符( \ )? 匹配任意單個字符( . )? 匹配列表中的任意單個字符( [xy] )? 匹配不在列表中的任意單個字符( [^xy] )? 匹配某個范圍內(nèi)的任意單個字符( [x-y] )? 特定字符的零次或多次匹配( * )? 特定字符的一次或多次匹配( + )? 特定字符的零次或一次匹配( ? )? 對正則表達式進行分組( ( ) )? 匹配幾個正則表達式中的一個表達式( | )? 在一行的開始進行匹配( ^ )? 在一行的結(jié)尾進行匹配( $ )? 匹配包括下劃線在內(nèi)的任一字母數(shù)字字符( \w )? 匹配任意非字母數(shù)字字符( \W )? 組合正則表達式操作符正則表達式的語法規(guī)則和標記字符描述:^符號匹配字符串的開頭。例如:^abc 與“abc xyz”匹配,而不與“xyz abc”匹配$符號匹配字符串的結(jié)尾。例如:abc$ 與“xyz abc”匹配,而不與“abc xyz”匹配。注意:如果同時使用^符號和$符號,將進行精確匹配。例如:^abc$ 只與“abc”匹配 *符號匹配0個或多個前面的字符。例如:ab* 可以匹配“ab”、“abb”、“abbb”等+符號匹配至少一個前面的字符。例如:ab+ 可以匹配“abb”、“abbb”等,但不匹配“ab”。?符號匹配0個或1個前面的字符。例如:ab?c? 可以且只能匹配“abc”、“abbc”、“abcc”和“abbcc”.符號匹配除換行符以外的任何字符。例如:(.)+ 匹配除換行符以外的所有字符串x|y匹配“x”或“y”。例如:abc|xyz 可匹配“abc”或“xyz”,而“ab(c|x)yz”匹配“abcyz”和“abxyz”{n}匹配恰好n次(n為非負整數(shù))前面的字符。例如:a{2} 可以匹配“aa“,但不匹配“a”{n,}匹配至少n次(n為非負整數(shù))前面的字符。例如:a{3,} 匹配“aaa”、“aaaa”等,但不匹配“a”和“aa”。注意:a{1,}等價于a+a{0,}等價于a*{m,n}匹配至少m個,至多n個前面的字符。例如:a{1,3} 只匹配“a”、“aa”和“aaa”。注意:a{0,1}等價于a?[xyz]表示一個字符集,匹配括號中字符的其中之一。