Regex:Java包的完整路径

Regex:Java包的完整路径,java,regex,path,package,sublimetext,Java,Regex,Path,Package,Sublimetext,我想使用一个正则表达式将完全限定的路径(例如/home/user/java/project/src/main/java/com/website/project/File.java)转换为相应的java包 这意味着,我想删除前面的所有内容,包括“java/”,文件名加上前导斜杠。然后将所有剩余的斜线变成点 通过使用下面的match子句,我似乎可以走得很远 .+main\/java\/|\/|[a-zA-Z$]+(\.java) 并替换为一个点。(regex基本上会查找前面的所有内容,包括“mai

我想使用一个正则表达式将完全限定的路径(例如/home/user/java/project/src/main/java/com/website/project/File.java)转换为相应的java包

这意味着,我想删除前面的所有内容,包括“java/”,文件名加上前导斜杠。然后将所有剩余的斜线变成点

通过使用下面的match子句,我似乎可以走得很远

.+main\/java\/|\/|[a-zA-Z$]+(\.java)
并替换为一个点。(regex基本上会查找前面的所有内容,包括“main/java/”,然后将所有/替换为。然后删除文件名

问题是,我现在有太多的点,我显然无法摆脱,因为我正在用点替换:)

由于我对正则表达式不太在行,我可能使用了一种完全错误的方法

我将非常感谢任何帮助

注:不幸的是,我只需要使用一个正则表达式,因为我只能注入一个,而不能将结果保存到临时变量或类似的东西中

多谢各位

编辑

我正在尝试为TextMate/Sublime文本创建一个tmSnippet。 我想在新文件中自动添加短语“package com.company.project”(当然是实际的包名)。 问题是,在这样的代码片段中,您可以获取文件的完整路径,并在输出之前通过正则表达式运行它。这就是为什么我只能使用一个正则表达式

Edit2

我可以通过使用python脚本并在Sublime文本中作为命令运行它来完成我想要的任务。
对于那些感兴趣的人,请看这个。我仍然好奇是否有可能将所有这些变成一个单一的正则表达式。我甚至不确定这是否可能…

我不确定您想做什么以及需要“注入”这个正则表达式的位置,但是下面的正则表达式将返回两个捕获组,第一个是Java文件的路径,第二个是文件名本身:

.+main\\/java\\/([[A-Za-z0-9]+\\/]+)\\/([A-Za-z0-9]+)\\.java
然后,您可以将第一个捕获的组上的
'/'
替换为
'.
,然后添加一个点和第二个捕获的字符串,从而获得完全限定的Java类名


正如我所说,我不知道为什么您会有不能使用变量的限制,但希望工作的正则表达式对您来说是一个进步。

我相信他在考虑Perl/sed/awk,其中斜杠是正则表达式分隔符。哦,是的,我在逃避斜杠,因为它是分隔符……您用什么语言执行正则表达式?