2组之间没有字符,用regex进行搜索

问题描述 投票:0回答:1

我需要一个regexp来过滤一个路径列表。

我的示例列表如下。

models/user.js
models/adapter.js
models/acquire.js
models/schema/extension.js
models/schema/permission.js
modules/breaktime/models/break.js
modules/breaktime/models/rule.js
modules/breaktime/models/step.js
modules/pbxmanager/models/group.js
modules/pbxmanager/models/member.js
modules/pbxmanager/models/shift.js
modules/breaktime/models/request.js
modules/breaktime/models/state.js

我定义了确切的起始路径,并且希望只获取该路径下的文件,而不是子文件夹的文件。

例如,如果我设置 models/ 作为regexp中的起始字符串,我应该只得到前3行,而不是schema文件夹下的那些。

我试着做了像(^start string)(exactly nothing)(end string$)这样的组,但是没有成功。

(^models\/)[\w{0}](\/[\w]+\.js$)

https:/regex101.comrwNtCni1

我找不到如何在regexp中设置 "两组之间没有任何东西"。

javascript regex url
1个回答
1
投票

如果你使用一个字符类 [\w{0}] 至少要有一个字符,要么是一个单词字符。{, 0}

在你的情况下,你不希望这样,你可以省略它的字符类,这将给你的是 (^models\/)(\/[\w]+\.js$) 其中有一个向前的斜线太多。

如果你把多余的 / 并去掉不必要的组和括号,你将得到的是

^models\/\w+\.js$

Regex演示

© www.soinside.com 2019 - 2024. All rights reserved.