我看了this例子,并尝试使用this website,但我仍然卡住。正则表达式匹配“一切,但”与kebab案例的webpack
我需要匹配node_modules
文件夹中除react-native-calendars
之外的所有内容以及它的子目录/子项。
我想我需要使用负前瞻,这里是我在:
new RegExp (/node_modules\/(?!.*(react-native-calendars))/)
任何帮助将不胜感激!谢谢。
我看了this例子,并尝试使用this website,但我仍然卡住。正则表达式匹配“一切,但”与kebab案例的webpack
我需要匹配node_modules
文件夹中除react-native-calendars
之外的所有内容以及它的子目录/子项。
我想我需要使用负前瞻,这里是我在:
new RegExp (/node_modules\/(?!.*(react-native-calendars))/)
任何帮助将不胜感激!谢谢。
这工作。
生^.*?/node_modules(?:/(?!react-native-calendars(?=/|$))[^/\r\n]*)*$
正则表达式字面/^.*?\/node_modules(?:\/(?!react-native-calendars(?=\/|$))[^\/\r\n]*)*$/
它的所有项目匹配与/ node_modules
文件夹和
每/
设置一个验证点,以检查损坏文件夹。
如果您使用单个项目字符串,您可以删除(?m)
。
如果您希望它不区分大小写,您可以根据需要添加(?i)
。
在JS,你将它们添加到文字语法/regex/mi
我已经检查,但如果你有一些样品输入我可以链接
到在线测试仪(regex101.com)。
扩展
^ # BOL
.*? # Up until
/node_modules # Required 'node_modules'
(?: # Cluster
/ #/folder start
(?! # Assert cannot be the bad folder
react-native-calendars
(?=/| $) # Bad folder end
)
[^/\r\n]* # Ok, get up until start of next folder
)* # Cluster end, do 0 to many times
$ # EOL
假设react-native-calendars
是node_modules
直接子文件夹:
/node_modules\/(?!react-native-calendars(?:\/|$)).*/
或
/node_modules\/(?!react-native-calendars(?![^\/])).*/
谢谢你,我该如何测试这个上regex101.com?我不认为主题字符串会起作用。 – pingo
这是在javacsript吗?我得到'无效正则表达式:/(?m)^.*?\/node_modules(?:\/((?!react-native-calendars(?=\/|$))[^\/\r\n ] *)* $ /'在我的控制台(相同的原料) – pingo
@pingo - 是的,只需拿出'(?m)'https://regex101.com/r/H2BKQt/2,将它添加到分隔符如果需要,可以形成'// m'。 – sln