用于将文件路径转换为包/命名空间的正则表达式

标签 regex sublimetext2 sublimetext sublimetext3

给定以下文件路径:

/Users/Lawrence/MyProject/some/very/interesting/Code.scala

我想使用单个正则表达式替换生成以下内容(根可以是常量):

some.very.interesting

这是为了生成 Sublime Text 的代码片段,它可以自动为我的 scala/java 类插入正确的包/命名空间 header :)

Sublime Text 使用以下语法作为正则表达式替换模式(也称为“替换”):

{input/regex/replace/flags}

因此,为什么不能采用迭代方法 - 它必须一次性完成!另外,替换不能嵌套:(

最佳答案

如果您知道嵌套文件夹的最大数量。您可以在正则表达式中指定。


适用于 1 到 3 个嵌套文件夹

正则表达式:/Users/Lawrence/MyProject/(\w+)/?(\w+)?/?(\w+)?/[^/]+$

替换:$1.$2.$3


适用于 1 到 5 个嵌套文件夹

正则表达式:/Users/Lawrence/MyProject/(\w+)/?(\w+)?/?(\w+)?/?(\w+)?/?(\w+)?/[^/]+$

替换:$1.$2.$3.$4.$5


考虑到限制,这是你唯一能做的事情

关于用于将文件路径转换为包/命名空间的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16076193/

相关文章:

sublimetext2 - 在 Sublime Text 中关闭所有选项卡,但不关闭窗口

regex - Windows 批处理 : How remove all blank (or empty) lines

java - 我的正则表达式是匹配的,但是在使用 java 时它不匹配

c++ - 使 Sublime Text 在 Mac 上使用 gcc4.8

sublimetext2 - Sublime Text 2 没有与 Notepad++ 相同的缩进

sublimetext - Sublime Text 3-包控制: “No packages available for installation” error when trying to install packages through secure channel

python - 不在正则表达式中不起作用

mysql - 使用sql查询搜索中间字符串

python - 从 sublime_plugin.WindowCommand 获取当前文件名

character-encoding - Sublime Text : Not representable characters