正则匹配末尾无斜杠路径失效,如何提取指定位置的xxxx字符串?
问题原因
你当前使用的正则末尾强制要求匹配/.*结构,要求路径必须存在后续的斜杠及内容,所以无法命中末尾无斜杠的路径,同时分组逻辑存在冗余,可以根据你的路径前缀规则选择对应正则:
适配正则
版本1:cde前为固定1层路径(如示例的/abc/cde/结构)
^/[^/]+/cde/v[^/]+/(?P<fetch>[^/]+)
版本2:cde前可存在任意多层路径(兼容你原有正则的前缀匹配逻辑)
^.*/cde/v[^/]+/(?P<fetch>[^/]+)
正则说明
^锚定路径起始位置,避免前缀异常的路径误匹配/cde/匹配固定标识段,确保匹配的路径符合前置结构要求v[^/]+匹配v开头的版本段(示例中为v1a1)(?P<fetch>[^/]+)捕获目标字段,[^/]+会匹配所有非斜杠的字符,不管目标字段后是否有斜杠、是否有后续路径,都能正常捕获
针对你给出的4种测试路径,以上正则都能正确捕获fetch分组值为xxxx。
内容的提问来源于stack exchange,提问作者Raj Wardhan
相关产品推荐
相关产品推荐

