正则表达式匹配“除了”与kepack-case for webpack

时间:2017-07-19 16:56:13

标签: javascript regex webpack regex-negation

我查看过this示例并尝试使用this website,但我仍然被卡住了。

我需要匹配除node_modules以外的react-native-calendars文件夹中的所有内容以及子目录/子目录。

我想我需要使用否定前瞻,这就是我所在的地方:

new RegExp (/node_modules\/(?!.*(react-native-calendars))/)

任何帮助将不胜感激!谢谢。

2 个答案:

答案 0 :(得分:1)

这很有效。

原始^.*?/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

答案 1 :(得分:0)

假设react-native-calendarsnode_modules直接子文件夹:

/node_modules\/(?!react-native-calendars(?:\/|$)).*/

/node_modules\/(?!react-native-calendars(?![^\/])).*/