Я использую VBscript в QTP, и я немного запутался:VBScript регулярное выражение вопрос
Почему Browser("name:=*")
не работает? Почему есть символ .
?
Спасибо!
Я использую VBscript в QTP, и я немного запутался:VBScript регулярное выражение вопрос
Почему Browser("name:=*")
не работает? Почему есть символ .
?
Спасибо!
В то время как обычные символы подстановки (например, те, которые используются в оболочках для задания много файлов сразу-е. Г. *.txt
) используют только askterisk (*
) как знак для на ноль или более произвольных символов, в регулярных выражениях это a quantifier. Он сообщает движку регулярного выражения о , предшествующем токену. A dot (.
) соответствует одному произвольному символу, точка, за которой следует звездочка, таким образом, соответствует нулю или более произвольным символам.
Однако =
следует *
будет соответствовать 0 или более знаков равенства (=
) -since звездочка всегда работает на предыдущего знак, который только знак равенства здесь.
Примечание: Маркер может быть много вещей, один символ, как =
, класс персонажа, такие как .
, \w
или [a-z]
, такой группой, как (abc)
который затем соответствует любой строке, как abcabcabc
, & гр. Это позволяет использовать гораздо более богатые типы выражений, чем просто простые старые подстановочные знаки.
Как правило, следующие эквивалентности между подстановочными знаками и регулярными выражениями удерживаются приблизительно; Есть некоторые детали, которые не могут быть немедленно очевидны:
Wildcard Regex
-------- -----
* .*
? .
[a-z] [a-z]
В *
средства: соответствовать выражение где символ слева от *
появляется 0 или более раз. .
означает «соответствовать любому символу». Таким образом, .*
означает: соответствует любому символу 0 или более раз. В вашем втором выражении знак * перед символом * означает, что это означает: соответствие 0 или более равных знаков.
Не более чем копия справочной страницы QTP.
Специальные символы и последовательности используются для написания шаблонов для регулярных выражений. Следующая таблица описывает и дает пример символов и последовательностей, которые можно использовать.
Символ Описание
\ Отмечает следующий символ либо как специальный символ или буквальным. Например, «n» соответствует символу «n». «\ n» соответствует символу новой строки. Последовательность "\" соответствует "\" и "(" спичка "(".
^Соответствует начало ввода.
$ сопоставляют конец ввода.
* Соответствует предыдущий символ ноль или больше. Например, «zo *» соответствует либо «z», либо «zoo».
+ Соответствует предыдущему символу один или несколько раз.Например, «zo +» соответствует «zoo», но не «z».
? Соответствует предыдущему символу нуль или один раз. Например, «a? Ve?» соответствует «ве» в «никогда».
. Соответствует любому одиночному символу, кроме символа новой строки.
(узор) Соответствует рисунку и запоминает матч. Соответствующая подстрока может быть получена из полученной коллекции совпадений, используя Item [0] ... [n]. Чтобы совместить символы круглых скобок(), используйте «(» или «)».
x | y Соответствует либо x, либо y. Например, «z | wood» соответствует «z» или «wood». «(z | w) oo« соответствует «зоопарку» или «дереву».
{n} n - неотрицательное целое число. Соответствует точно n раз. Например, «o {2}» не соответствует «o» в «Bob», но соответствует первым двум символам o в «foooood».
{n,} n - неотрицательное целое число. Соответствует не менее n раз. Например, «o {2,}» не соответствует «o» в «Bob» и соответствует всем o в «foooood». «o {1,}» эквивалентно «o +». «o {0,}» эквивалентно «o *».
{n, m} m и n - неотрицательные целые числа. Соответствует не менее n и не более m раз. Например, «o {1,3}» соответствует первым трем символам o в «fooooood». «o {0,1}» эквивалентно «o?».
[xyz] Набор символов. Соответствует любому из прилагаемых символов. Например, «[abc]» соответствует «a» в «plain».
[^ xyz] Отрицательный набор символов. Соответствует любому символу, не прилагаемому. Например, «[^ abc]» соответствует «p» в «plain».
[a-z] Диапазон символов. Соответствует любому символу в указанном диапазоне. Например, «[a-z]» соответствует любому строчному алфавиту в диапазоне от «a» до «z».
[^ m-z] Символы отрицательного диапазона. Соответствует любому символу не в указанном диапазоне. Например, «[m-z]» соответствует любому символу не в диапазоне от «m» до «z».
\ b Соответствует границе слова, то есть позиции между словом и пространством. Например, «er \ b» соответствует «er» в «never», но не «er» в «verb».
\ B Соответствует границе, отличной от слова. «ea * r \ B» соответствует «уху» в «никогда раньше».
\ 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» соответствует двум последовательным идентичным символам.
\ n Соответствует n, где n - восьмеричное значение выхода. Значения выхода из Octal должны быть длиной 1, 2 или 3 цифры. Например, «\ 11» и «\ 011» совпадают с символом табуляции. «\ 0011» является эквивалентом «\ 001» & «1». Значения выхода из Octal не должны превышать 256. Если это так, то только первые две цифры содержат выражение. Позволяет использовать коды ASCII в регулярных выражениях.
\ xn Соответствует n, где n - шестнадцатеричное значение escape. Шестнадцатеричные значения escape должны быть ровно двумя цифрами. Например, «\ x41» соответствует «A». «\ x041» эквивалентно «\ x04» & «1». Позволяет использовать коды ASCII в регулярных выражениях.
Спасибо. Как я могу сказать движку, что он должен принять * blah * означает «blah» все в тексте – Thomas
Просто «бла». Обычные буквы и цифры не являются метасимволами и точно соответствуют им. – Joey
На самом деле я думаю, что QTP неявно закрепляет выражение, поэтому вам понадобится '. * Blah. *' (Вы должны проверить и посмотреть) – Motti