Javascript 如何使用regexp模式创建存储迭代器

Javascript 如何使用regexp模式创建存储迭代器,javascript,regex,Javascript,Regex,是否可以创建一个函数,通过提供的正则表达式遍历每个目录? 我想如何使用它: const allStreets = await storage.forEachDir( new RegExp('P.*/.*/C.*'), (directoryPath: string) => { console.log(directoryPath); }, ); 期望它返回所有以字母“C”开头的目录,在根目录中以字母“p”开头的目录中的任何位置 例如,它应该返回给我: ['Poland/W

是否可以创建一个函数,通过提供的正则表达式遍历每个目录? 我想如何使用它:

const allStreets = await storage.forEachDir(
  new RegExp('P.*/.*/C.*'),
  (directoryPath: string) => {
    console.log(directoryPath);
  },
);
期望它返回所有以字母“C”开头的目录,在根目录中以字母“p”开头的目录中的任何位置

例如,它应该返回给我:

['Poland/Warsaw/Center', 'Portugal/Lissabon/Casal Das']

这项任务看起来没那么困难,但我不知道如何检查例如
'Poland/Warsaw'
是否部分地匹配模式
p.*/*/C.*
,这样我就可以继续阅读其中的所有目录


(我根本不想打开俄罗斯和美国的目录,因为它们不匹配regexp,甚至不匹配部分)

Regex实际上不进行那样的部分匹配。您必须迭代整个目录树以生成一个类似于
['a','a/B','a/B/C','B'…]
的列表,然后循环遍历这些目录树并通过regex进行匹配。你最好的办法是把你的正则表达式分为“国家”正则表达式和“城市”正则表达式,然后从中写出逻辑。