作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 Python 正则表达式预先验证下面的 API 测试请求 URL 列表。
以下 URLS/请求字符串“R”列表有 2 个部分:
除了前 19 个和最后 3 个 (22-24) 之外,正则表达式代码可以正常工作,但对于请求 20-21 则不能正常工作(请参阅列表 def 中的注释)。
我确信有更有效的方法来进行匹配,但它们给了我类似的结果。所以我只是让我的例子保持简单。
import re
R = [
# these are invalid and fail regex match
"http://127.0.0.1:5000/x,bad",
"http://127.0.0.1:5000/countries?,bad",
"http://127.0.0.1:5000/countries?x,bad",
"http://127.0.0.1:5000/countries?=,bad",
"http://127.0.0.1:5000/countries?x=,bad",
"http://127.0.0.1:5000/countries&,bad",
"http://127.0.0.1:5000/countries&x,bad",
"http://127.0.0.1:5000/countries&=,bad",
"http://127.0.0.1:5000/countries&x=,bad",
"http://127.0.0.1:5000/countries&x=x,bad",
"http://127.0.0.1:5000/countries?code=AU?,bad",
"http://127.0.0.1:5000/countries?name=Australia?x,bad",
"http://127.0.0.1:5000/countries?name=Australia?=,bad",
"http://127.0.0.1:5000/countries?name=Australia?x=,bad",
"http://127.0.0.1:5000/countries?name=Australia?x=x,bad",
"http://127.0.0.1:5000/countries?name=Australia&,bad",
"http://127.0.0.1:5000/countries?name=Australia&x,bad",
"http://127.0.0.1:5000/countries?name=Australia&=,bad",
"http://127.0.0.1:5000/countries?name=Australia&x=,bad",
# these are valid requests and fail regex match
"http://127.0.0.1:5000/countries,good", # 20
"http://127.0.0.1:5000/countries?name=Australia,good", # 21
# these are valid and pass regex match
"http://127.0.0.1:5000/countries?code=AU&name=Australia,good", # 22
"http://127.0.0.1:5000/countries?name=New Zealand&calling_code=64,good", # 23
"http://127.0.0.1:5000/countries?code=AU&name=Australia&capital=Canberra,good", #24
]
for r in R:
divs.split(",")
m = re.match(r'http://127.0.0.1:5000/countries[\?[\s\w]{1,}=[\s\w]{1,}[\&[\s\w]{1,}=[\s\w]{1,}]{0,}]{0,1}', divs[0])
res = "good" if m != None else "bad"
print(divs[0] + " should be " + divs[1] + " and is " + res)
最佳答案
使用以下正则表达式:
^http://127\.0\.0\.1:5000/countries(?:\?\w+=[\s\w]+(?:&\w+=[\s\w]+)*)?$/gm
请注意:
国家
后面的完整内容是可选的。.
需要转义,因为它在正则表达式世界中具有特殊含义\w
匹配,右侧由 \s\w
组合匹配。关于python - 预先验证 API 测试请求 URL 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59402536/
问了这个问题How to reach CSS zen? ,我现在明白我遇到的问题大多与定位有关。我发现一些文章说 CSS 作为布局系统并不总是足够好。 http://echochamber.me/vi
我是一名优秀的程序员,十分优秀!