【问题标题】:Regex to match directory path正则表达式匹配目录路径
【发布时间】:2020-03-02 00:17:14
【问题描述】:

我想出了一个正则表达式字符串来匹配目录路径字符串。

我遇到了作为搜索查询子字符串的其他目录匹配的问题。 IE。搜索字符串是“pool0/backuptest”,将匹配“pool0/backuptesttest”

我想出了前瞻正则表达式查询:

(pool0\/backuptest)(((?=\/)(\/\w*)))+|(pool0\/backuptest)$

更新刚刚发现这在 Linux bash CLI 上不起作用,因为它似乎不支持正则表达式前瞻

这将匹配:

pool0/backuptest
pool0/backuptest/testchild1
pool0/backuptest/testchild3/testchild1_1
pool0/backuptest/testchild3/testchild1_1/testchild2_1

并且会拒绝:

pool0/backuptesttest

有没有更简洁的方法来做到这一点?

regex101 screenshot

【问题讨论】:

  • pool0\/backuptest($|(\/\w+)+) 有点短,但工作原理相同

标签: regex


【解决方案1】:

这样怎么样,要么匹配父目录,要么匹配任何子目录(断言父目录后面必须跟/):

pool0\/backuptest$|pool0\/backuptest\/.*

https://regex101.com/r/kJHw6y/1/

【讨论】:

  • 完美运行,比我的尝试简单得多。
猜你喜欢
  • 1970-01-01
  • 2020-09-30
  • 2019-03-26
  • 1970-01-01
  • 2022-10-19
  • 2022-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多