正则表达式匹配字符串 - 没有其他字符串

时间:2018-01-26 11:17:49

标签: regex

正则我和我不是最好的朋友......通常,他最终让我头疼。这也不例外。最令人尴尬的是这是一个非常基本的问题。

我需要匹配字符串1和字符串2,同时重写lighttpd配置中的某些URL。以下是这样做但它也匹配字符串4

^/sys/api/app/service/(.[^/]*)/{0,1}$
  1. / SYS / API /应用/服务/ AnotherDemoApp
  2. / SYS / API /应用/服务/ AnotherDemoApp /
  3. / SYS / API /应用/服务?_ = 1516954535231
  4. / SYS / API /应用/服务/?_ = 1516954535231
  5. / SYS / API /应用/服务
  6. / SYS / API /应用/服务/
  7. /sys/api/app/service/DemoApp/conf/conf.json
  8. /sys/api/app/service/DemoApp/conf/conf.json?_ = 1516954535231
  9. 示例:https://regex101.com/r/1dRhWz/1

    我开始阅读有关Lookahead和Lookbehind的信息,想象我可以添加类似(?!。* [?] _ = [0-9])的东西来摆脱那个讨厌的字符串4.我必须错过一些拼图 - 没有工作。

    任何帮助都将非常感谢:)

1 个答案:

答案 0 :(得分:0)

@L3viathan评论看起来不错。您可以做的另一个选择是^/sys/api/app/service/(\w+)/?$。但如果你告诉我们你在寻找什么,那将会很有用。

例如,如果您还想重写7和8,则可以使用^/sys/api/app/service/(\w+)/?.*$(如果只需要/sys/api/app/service/下的所有目录)。