我需要编写一个正则表达式来查找所有文件夹路径,但特定父级的子文件夹除外。例如,考虑我的字符串包含以下项之一,并且如果路径不是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",因为只有在folder1folder3后跟/的情况下,字符串匹配才失败。您需要允许字符串的结尾,用/替换前瞻中的第二个(?:/|$)

您可以使用

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


请参见regex demo

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

关于javascript - 编写正则表达式以匹配特殊类型的文件夹路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39701026/

10-11 07:12