【问题标题】:Writing a regex for matching special types of folder path为匹配特殊类型的文件夹路径编写正则表达式
【发布时间】:2017-02-03 16:34:00
【问题描述】:

我需要编写一个正则表达式来查找所有文件夹路径,但特定父母的孩子除外。例如,考虑我的字符串包含以下项目之一,如果路径不是文件夹 1 和文件夹 3 的子路径,我想匹配整个字符串:

string 1: "/folder1/subfolder_0"
string 2: "/folder1/"
string 3: "/folder1"
string 4: "/folder2/subfolder_0"
string 5: "/folder3/subfolder_0"
string 6: "/folder3"

我使用正则表达式 /^\/((?!(folder1|folder3)\/)([\w\/])+)$/ 来实现匹配。但它也匹配字符串 3 和 6,而我只想匹配第 4 个字符串。我的问题是字符串以 folder1 和 folder3 结尾,没有 / 字符。正则表达式可以吗?

【问题讨论】:

标签: javascript regex


【解决方案1】:

您的^/((?!(folder1|folder3)/)([\w/])+)$ 正则表达式匹配"/folder1""/folder3",因为只有在folder1folder3 后跟/ 时,字符串匹配才会失败。您需要允许字符串结尾,将前瞻中的第二个/ 替换为(?:/|$)

你可以使用

/^\/(?!folder[13](?:\/|$))[\w\/]+$/

regex demo

注意如果您只需要RegExp#test() 这些值,[\w\/]+$ 在这里可能是多余的。

【讨论】:

  • 好的,我知道问题出在哪里,但我不知道如何解决。你帮了我很多。再次感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-11
  • 1970-01-01
  • 2020-09-30
  • 1970-01-01
  • 2016-12-11
  • 1970-01-01
  • 2021-11-03
相关资源
最近更新 更多