我需要编写一个正则表达式来查找所有文件夹路径,但特定父级的子文件夹除外。例如,考虑我的字符串包含以下项之一,并且如果路径不是folder1和folder3的子代,我想匹配整个字符串:
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个字符串。我的问题是字符串在no /字符后以folder1和folder3结尾。正则表达式可能吗? 最佳答案
您的^/((?!(folder1|folder3)/)([\w/])+)$
正则表达式匹配"/folder1"
和"/folder3"
,因为只有在folder1
或folder3
后跟/
的情况下,字符串匹配才失败。您需要允许字符串的结尾,用/
替换前瞻中的第二个(?:/|$)
。
您可以使用
/^\/(?!folder[13](?:\/|$))[\w\/]+$/
请参见regex demo
请注意,如果您只需要
[\w\/]+$
这些值,则RegExp#test()
在这里可能是多余的。关于javascript - 编写正则表达式以匹配特殊类型的文件夹路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39701026/