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不匹配,与最后一个匹配。
预先感谢:)
答案 0 :(得分:0)
您可以使用
(?i)^Packages/(?!User)(?:(?![^/]+$).)+/[^(.]+(?:\((?!OSX|Linux).+\))?\.sublime-settings
https://regex101.com/r/kgJMq4/2
(?!User)
-第一个斜杠后的User
负向前进(?:(?![^/]+$).)+
-重复不跟非斜杠字符和字符串结尾的任何字符/[^(.]+
-匹配最后的斜杠,然后重复非括号,非点字符,以检查可选组:(?:\((?!OSX|Linux).+\))?
-不以OSX
或Linux
开头的词组的括号