首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regex匹配*.崇高-设置文件

Regex匹配*.崇高-设置文件
EN

Stack Overflow用户
提问于 2018-10-15 23:34:15
回答 1查看 31关注 0票数 0
代码语言:javascript
复制
Packages/Material Theme/widgets/Widget - Material-Theme.sublime-settings
Packages/DA UI/Widget - DA.sublime-settings
Packages/DA UI/Widget - DA (Windows).sublime-settings
Packages/TextMate/TextMate Syntax Definition (JSON).sublime-settings

Packages/DA UI/Widget - DA (Linux).sublime-settings
Packages/DA UI/Widget - DA (OSX).sublime-settings
Packages/User/YAML.sublime-settings

是否有人有时间实现一个正则表达式来匹配前4个而不是最后3个。

规则

  • Packages之后,必须至少有一个文件夹。
  • Packages后面的文件夹不能是“用户”。
  • 名称(在最后斜杠之后)可以选择地在.前面包含一对括号,这些括号可能不包含其他平台的名称;如果当前平台为Windows,则不接受OSX和Linux (我们假设当前平台由变量platform表示)。

这是我的尝试:

(?i)Packages/(?:[^/]+?/([^()]+?(?: \((?!OSX|Linux)\))?)\.sublime-settings)

它不匹配3和4,也不匹配最后一个。

(预先谢谢:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-15 23:45:53

您可以使用

代码语言:javascript
复制
(?i)^Packages/(?!User)(?:(?![^/]+$).)+/[^(.]+(?:\((?!OSX|Linux).+\))?\.sublime-settings

https://regex101.com/r/kgJMq4/2

  • (?!User) -在第一个斜杠之后对User进行负展望
  • (?:(?![^/]+$).)+ -重复所有未加斜杠字符和字符串末尾的字符。
  • /[^(.]+ -匹配最后的斜杠,然后重复非圆括号、非点字符,以便检查可选组:
  • (?:\((?!OSX|Linux).+\))? -围绕一个不以OSXLinux开头的短语的部分
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52826054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档