Robotframework - 在 python 中工作的正则表达式不匹配
Robotframework - regex working in python not matching
我有以下字符串:
https://m.facebook.com/story.php?story_fbid=123345&id=12334&__xts__%5B0%5D=12.AboYsxZUMIF4f8fZJLZ0LVrJZJ1jxGxzsmM2lJZJ8JoGFxO1UgViHWKvUSGwxVjkzwOjfCxL-FxJY9pfgvYP6L8Kwdd4tHZl-V1OaVvl40agK3dimgois_14R0sr9rSelJ5rt0WTU5fRoHNeGv2TR3sxrewYBf2wzfMQwDKV4pV4WbLkbqFd0f1mbcpx7VjMduLhbj2MXRHO_ERg1ssEesWbCHAzvZNSmXP6LycMlYHhbaoi6m7gTpBswQR-VBkdfjk3289dfsfsdfoIgfSxaxr9oa6FATiaF2V54-QWQOKgYtuO87YzKFnNh-m_mGgVkCYIA7-YwEK10zZCmSxEtSrmWSl5ZzSXNRpMg&__tn__=%2As%2As
我需要用正则表达式提取这部分:
https://m.facebook.com/story.php?story_fbid=123345&id=12334
所以我创建了这个正则表达式(在 Python 中完美运行)
https?://(www\.|m\.)(facebook\.com)\/story\.php\?story_fbid=[0-9]+&id=[0-9]+
我尝试在 robotfrawework 脚本中包含:
*** Settings ***
Library String
*** Variables ***
${pattern} SEPARATOR=
... https?
... ://
... (www\.|m\.)
... (facebook\.com)
... /story\.php\?story_fbid=
... [0-9]+
... &id=
... [0-9]+
*** Test Cases ***
String should match pattern
${url}= Set Variable https://m.facebook.com/story.php?story_fbid=123345&id=12334&__xts__%5B0%5D=12.AboYsxZUMIF4f8fZJLZ0LVrJZJ1jxGxzsmM2lJZJ8JoGFxO1UgViHWKvUSGwxVjkzwOjfCxL-FxJY9pfgvYP6L8Kwdd4tHZl-V1OaVvl40agK3dimgois_14R0sr9rSelJ5rt0WTU5fRoHNeGv2TR3sxrewYBf2wzfMQwDKV4pV4WbLkbqFd0f1mbcpx7VjMduLhbj2MXRHO_ERg1ssEesWbCHAzvZNSmXP6LycMlYHhbaoi6m7gTpBswQR-VBkdfjk3289dfsfsdfoIgfSxaxr9oa6FATiaF2V54-QWQOKgYtuO87YzKFnNh-m_mGgVkCYIA7-YwEK10zZCmSxEtSrmWSl5ZzSXNRpMg&__tn__=%2As%2As
${matchesp}= Get lines matching regexp ${url} ${pattern}
run keyword if $matchesp Log To Console OK MATCHED!
但它根本不起作用(没有给出任何匹配项)。
我无法理解我做错了什么。
谢谢
使用 Get Regexp Matches
关键字代替 Get Lines Matching Regexp
。
Get Lines Matching Regexp
用于查找多行字符串中的特定行。
代码:
*** Settings ***
Library String
*** Variables ***
${pattern} SEPARATOR=
... https?
... ://
... (www\.|m\.)
... (facebook\.com)
... /story\.php\?story_fbid=
... [0-9]+
... &id=
... [0-9]+
*** Test Cases ***
String should match pattern
${url}= Set Variable https://m.facebook.com/story.php?story_fbid=123345&id=12334&__xts__%5B0%5D=12.AboYsxZUMIF4f8fZJLZ0LVrJZJ1jxGxzsmM2lJZJ8JoGFxO1UgViHWKvUSGwxVjkzwOjfCxL-FxJY9pfgvYP6L8Kwdd4tHZl-V1OaVvl40agK3dimgois_14R0sr9rSelJ5rt0WTU5fRoHNeGv2TR3sxrewYBf2wzfMQwDKV4pV4WbLkbqFd0f1mbcpx7VjMduLhbj2MXRHO_ERg1ssEesWbCHAzvZNSmXP6LycMlYHhbaoi6m7gTpBswQR-VBkdfjk3289dfsfsdfoIgfSxaxr9oa6FATiaF2V54-QWQOKgYtuO87YzKFnNh-m_mGgVkCYIA7-YwEK10zZCmSxEtSrmWSl5ZzSXNRpMg&__tn__=%2As%2As
${matchesp}= Get Regexp Matches ${url} ${pattern}
Log To Console \n${matchesp}
输出:
==============================================================================
String should match pattern ..
['https://m.facebook.com/story.php?story_fbid=123345&id=12334']
String should match pattern | PASS |
------------------------------------------------------------------------------
Main | PASS |
1 test, 1 passed, 0 failed
==============================================================================
我有以下字符串:
https://m.facebook.com/story.php?story_fbid=123345&id=12334&__xts__%5B0%5D=12.AboYsxZUMIF4f8fZJLZ0LVrJZJ1jxGxzsmM2lJZJ8JoGFxO1UgViHWKvUSGwxVjkzwOjfCxL-FxJY9pfgvYP6L8Kwdd4tHZl-V1OaVvl40agK3dimgois_14R0sr9rSelJ5rt0WTU5fRoHNeGv2TR3sxrewYBf2wzfMQwDKV4pV4WbLkbqFd0f1mbcpx7VjMduLhbj2MXRHO_ERg1ssEesWbCHAzvZNSmXP6LycMlYHhbaoi6m7gTpBswQR-VBkdfjk3289dfsfsdfoIgfSxaxr9oa6FATiaF2V54-QWQOKgYtuO87YzKFnNh-m_mGgVkCYIA7-YwEK10zZCmSxEtSrmWSl5ZzSXNRpMg&__tn__=%2As%2As
我需要用正则表达式提取这部分:
https://m.facebook.com/story.php?story_fbid=123345&id=12334
所以我创建了这个正则表达式(在 Python 中完美运行)
https?://(www\.|m\.)(facebook\.com)\/story\.php\?story_fbid=[0-9]+&id=[0-9]+
我尝试在 robotfrawework 脚本中包含:
*** Settings ***
Library String
*** Variables ***
${pattern} SEPARATOR=
... https?
... ://
... (www\.|m\.)
... (facebook\.com)
... /story\.php\?story_fbid=
... [0-9]+
... &id=
... [0-9]+
*** Test Cases ***
String should match pattern
${url}= Set Variable https://m.facebook.com/story.php?story_fbid=123345&id=12334&__xts__%5B0%5D=12.AboYsxZUMIF4f8fZJLZ0LVrJZJ1jxGxzsmM2lJZJ8JoGFxO1UgViHWKvUSGwxVjkzwOjfCxL-FxJY9pfgvYP6L8Kwdd4tHZl-V1OaVvl40agK3dimgois_14R0sr9rSelJ5rt0WTU5fRoHNeGv2TR3sxrewYBf2wzfMQwDKV4pV4WbLkbqFd0f1mbcpx7VjMduLhbj2MXRHO_ERg1ssEesWbCHAzvZNSmXP6LycMlYHhbaoi6m7gTpBswQR-VBkdfjk3289dfsfsdfoIgfSxaxr9oa6FATiaF2V54-QWQOKgYtuO87YzKFnNh-m_mGgVkCYIA7-YwEK10zZCmSxEtSrmWSl5ZzSXNRpMg&__tn__=%2As%2As
${matchesp}= Get lines matching regexp ${url} ${pattern}
run keyword if $matchesp Log To Console OK MATCHED!
但它根本不起作用(没有给出任何匹配项)。 我无法理解我做错了什么。 谢谢
使用 Get Regexp Matches
关键字代替 Get Lines Matching Regexp
。
Get Lines Matching Regexp
用于查找多行字符串中的特定行。
代码:
*** Settings ***
Library String
*** Variables ***
${pattern} SEPARATOR=
... https?
... ://
... (www\.|m\.)
... (facebook\.com)
... /story\.php\?story_fbid=
... [0-9]+
... &id=
... [0-9]+
*** Test Cases ***
String should match pattern
${url}= Set Variable https://m.facebook.com/story.php?story_fbid=123345&id=12334&__xts__%5B0%5D=12.AboYsxZUMIF4f8fZJLZ0LVrJZJ1jxGxzsmM2lJZJ8JoGFxO1UgViHWKvUSGwxVjkzwOjfCxL-FxJY9pfgvYP6L8Kwdd4tHZl-V1OaVvl40agK3dimgois_14R0sr9rSelJ5rt0WTU5fRoHNeGv2TR3sxrewYBf2wzfMQwDKV4pV4WbLkbqFd0f1mbcpx7VjMduLhbj2MXRHO_ERg1ssEesWbCHAzvZNSmXP6LycMlYHhbaoi6m7gTpBswQR-VBkdfjk3289dfsfsdfoIgfSxaxr9oa6FATiaF2V54-QWQOKgYtuO87YzKFnNh-m_mGgVkCYIA7-YwEK10zZCmSxEtSrmWSl5ZzSXNRpMg&__tn__=%2As%2As
${matchesp}= Get Regexp Matches ${url} ${pattern}
Log To Console \n${matchesp}
输出:
==============================================================================
String should match pattern ..
['https://m.facebook.com/story.php?story_fbid=123345&id=12334']
String should match pattern | PASS |
------------------------------------------------------------------------------
Main | PASS |
1 test, 1 passed, 0 failed
==============================================================================