求助Python适配的/wiki路径正则:排除含后续斜杠带文本的场景
适配路径匹配规则的Python可用正则方案
匹配核心逻辑
路径固定以/wiki/开头,后续部分仅允许出现位于字符串最末尾的可选斜杠;凡是路径中间出现斜杠、且斜杠后附带任意文本内容的结构,均不触发匹配。
可直接复用的正则代码
import re # 预编译正则对象,可直接调用match/search方法匹配字符串 wiki_route_pattern = re.compile(r'^/wiki/[^/]*/?$')
正则表达式本体为:^/wiki/[^/]*/?$
匹配效果对照
- 符合要求、可正常命中的场景:
- 纯根路径
/wiki/ - 任意单段路径,比如
/wiki/abc、/wiki/带URL编码的查询参数串 - 带末尾斜杠的单段路径,比如
/wiki/abc/
- 纯根路径
- 不符合要求、不会触发匹配的场景:
- 多段路径结构,比如
/wiki/abc/def,这类斜杠后附带文本的结构会被直接排除
- 多段路径结构,比如
此前测试写法失效原因
之前尝试的^\/wiki\/.*\/?[^.]*$、^\/wiki\/.*\/?(?!.)$等变体,核心问题是使用.通配符匹配任意字符(包含路径分隔斜杠),会将路径中间的斜杠也纳入普通匹配范围,无法区分“末尾允许的斜杠”和“中间禁止的斜杠”的差异,最终出现误匹配。
内容的提问来源于stack exchange,提问作者lnogueir
相关产品推荐
相关产品推荐

