2

QTP で VBscript を使用していますが、少し混乱しています。

Browser("name:=.*") //works

なぜBrowser("name:=*")機能しないのですか?なぜ.キャラクターがいるのですか?

ありがとうございました!

4

3 に答える 3

8

通常のワイルドカード (多数のファイルを一度に指定するためにシェルで使用されるワイルドカードなど) は、0 個以上の任意の文字の記号として*.txtaskterisk ( ) のみを使用しますが、正規表現ではそれは量指定子です。これは正規表現エンジンに前のトークンについて何かを伝えます。ドット ( )は1つの任意の文字に一致し、ドットの後にアスタリスクが続くとゼロ個以上の任意の文字に一致します。*.

ただし、a に=続く aは、 *0 個以上の等号 ( =) に一致します。これは、アスタリスクが常にのトークン (ここでは等号のみ) で機能するためです。

注: トークンには、 のような 1 文字、や=などの文字クラス、や&cなどの任意の文字列に一致するなどのグループなど、さまざまなものがあります。これにより、単なる古いワイルドカードよりもはるかに豊富なタイプの式を定義できます。.\w[a-z](abc)abcabcabc

一般に、ワイルドカードと正規表現の間の次の同等性が成り立ちます。すぐには明らかにならない詳細がいくつかあります。

Wildcard        Regex
--------        -----
*               .*
?               .
[a-z]           [a-z]
于 2010-01-24T19:19:19.710 に答える
3

*手段: の左側の文字が 0 回以上出現する式に一致します*.「任意の文字に一致」を意味します。つまり.*、任意の文字に 0 回以上一致することを意味します。2 番目の式では、* の前に等号があるため、0 個以上の等号に一致することを意味します。

于 2010-01-24T19:20:02.897 に答える
2

QTPのヘルプページのコピーにすぎません。

正規表現のパターンの記述には、特殊文字とシーケンスが使用されます。次の表では、使用できる文字とシーケンスについて説明し、例を示します。

キャラクターの説明

\次の文字を特殊文字またはリテラルとしてマークします。たとえば、「n」は文字「n」と一致します。「\n」は改行文字と一致します。シーケンス「\」は「\」に一致し、「(」は「(」に一致します。

^入力の先頭に一致します。

$入力の終わりに一致します。

*前の文字と0回以上一致します。たとえば、「zo*」は「z」または「zoo」のいずれかに一致します。

+前の文字と1回以上一致します。たとえば、「zo +」は「zoo」と一致しますが、「z」とは一致しません。

?前の文字に0回または1回一致します。たとえば、「a?ve?」「never」の「ve」と一致します。

。改行文字を除くすべての単一文字に一致します。

(パターン)パターンと一致し、一致を記憶します。一致したサブ文字列は、Item [0] ... [n]を使用して、結果のMatchesコレクションから取得できます。括弧文字()を一致させるには、「(」または「)」を使用します。

x |yxまたはyのいずれかに一致します。たとえば、「z|wood」は「z」または「wood」と一致します。「(z | w)oo」は「zoo」または「wood」と一致します。

{n}nは非負の整数です。正確にn回一致します。たとえば、「o {2}」は「Bob」の「o」とは一致しませんが、「foooood」の最初の2つのoとは一致します。

{n、}nは非負の整数です。少なくともn回一致します。たとえば、「o {2、}」は「Bob」の「o」とは一致せず、「foooood」のすべてのoと一致します。「o{1、}」は「o+」と同等です。「o{0、}」は「o*」と同等です。

{n、m}mとnは非負の整数です。少なくともn回、最大でm回一致します。たとえば、「o {1,3}」は、「fooooood」の最初の3つのoと一致します。「o{0,1}」は「o?」と同等です。

[xyz]文字セット。囲まれた文字のいずれかに一致します。たとえば、「[abc]」は「plain」の「a」と一致します。

[^xyz]負の文字セット。囲まれていない任意の文字に一致します。たとえば、「[^abc]」は「plain」の「p」と一致します。

[az]文字の範囲。指定された範囲内の任意の文字に一致します。たとえば、「[az]」は、「a」から「z」の範囲の小文字の英字に一致します。

[^mz]負の範囲の文字。指定された範囲外の任意の文字に一致します。たとえば、「[mz]」は「m」から「z」の範囲外の任意の文字に一致します。

\ b単語の境界、つまり単語とスペースの間の位置に一致します。たとえば、「er \ b」は「never」の「er」と一致しますが、「verb」の「er」とは一致しません。

\B単語以外の境界に一致します。「ea*r\B」は「neverearly」の「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_]」に相当します。

\ num numと一致します。ここで、numは正の整数です。記憶された一致への参照。たとえば、「(。)\1」は2つの連続する同一の文字に一致します。

\ n nに一致します。ここで、nは8進数のエスケープ値です。8進数のエスケープ値は、1桁、2桁、または3桁の長さである必要があります。たとえば、「\11」と「\011」はどちらもタブ文字と一致します。「\0011」は「\001」と「1」に相当します。8進数のエスケープ値は256を超えてはなりません。超えている場合は、最初の2桁のみが式を構成します。ASCIIコードを正規表現で使用できるようにします。

\ xn nに一致します。ここで、nは16進エスケープ値です。16進エスケープ値は、正確に2桁の長さである必要があります。たとえば、「\x41」は「A」と一致します。「\x041」は「\x04」と「1」に相当します。ASCIIコードを正規表現で使用できるようにします。

于 2010-01-26T14:16:54.263 に答える