首页 > 解决方案 > 获取最后两个路径深度。正则表达式

问题描述

我只想匹配最后两个路径深度。

示例输入:

/root/sync/test1/hallo12

匹配的应该是:

/test1/hallo12

我不工作的正则表达式:

(/.*){2,2}$

标签: regex

解决方案


您可以使用

(?:/[^/]+){2}$

请参阅正则表达式演示

细节

  • (?:/[^/]+){2}- 两次连续出现
    • /- 一个斜线
    • [^/]+- 1+ 字符以外/
  • $- 字符串结束。

如果可能有斜杠使用

(?:/[^/]+){2}/?$
             ^^

where/?匹配 1 或 0 个斜杠。

请注意,如果您在 /正则表达式分隔符中使用模式,则必须转义模式中的斜杠。


推荐阅读