Использование Regexp Escape и должно совпадать в Robot Framework

Я пытаюсь изучить Robot Framework, я пытаюсь сопоставить регулярные выражения, подобные этому

TC should match
    ${escaped} =    Regexp Escape   Hello World
    Should Match    ${Hello World}  ${escaped}

Где ${Hello World} — это Hello World (объявлено в таблице переменных)

Когда я запускаю эту команду, я получаю эту ошибку. ""Hello World" не соответствует "Hello\ World"". Что я делаю не так?. Заранее спасибо. Кроме того, я пытаюсь сопоставить такие вещи, как [a-z]* или s+ d+. Я не могу этого сделать. Любая помощь приветствуется


person TheLostMind    schedule 05.11.2013    source источник


Ответы (1)


Из документов:

Возвращает каждую экранированную строку аргумента для использования в качестве регулярного выражения.

Таким образом, Regexp Escape KW формирует из заданной строки такую ​​строку, которую можно использовать как регулярное выражение. «Hello World» становится «Hello\ World», что, конечно, не будет соответствовать «Hello World», потому что другой содержит символ \.

Если вы используете Should Match Regexp, тест будет пройден.

person Harri    schedule 05.11.2013
comment
что, если я хочу использовать «Hello World» в качестве RE? Я имею в виду, какой смысл вставлять \ при создании шаблона? Что хорошего это принесет? - person TheLostMind; 05.11.2013
comment
Если Match не использует регулярное выражение, это больше похоже на небольшое подмножество регулярного выражения, Should Match Regexp действительно использует регулярное выражение. Regexp Escape — это просто оболочка для python re.escape() docs.python.org/2.7 /library/re.html, который говорит: «Вернуть строку со всеми символами, не являющимися буквенно-цифровыми, с обратной косой чертой»; это полезно, если вы хотите сопоставить произвольную литеральную строку, которая может содержать метасимволы регулярного выражения. - person Harri; 05.11.2013
comment
Похоже, мы единственные люди в SOF, использующие Robot Framework :P. Спасибо, кстати. - person TheLostMind; 05.11.2013
comment
Как насчет регулярного выражения, такого как ^.*Мое что-то (да).* ? эти не совпадают - person Edmondo1984; 23.03.2021