我的目标是转变:
src/com/company/folder/anotherfolder/manyfolders/filename.java
进入这个:
a few words com.company.folder.anotherfolder.manyfolders filename "description"
我主要使用以下查找和替换:
查找:(.*?)/(.*?)/(.*?)/(.*?)/(.*?)/(.*?)/(.*?)/(.*?)/(.*?)(\..*)
替换:a few words $2\.$3\.$4\.$5\.$6\.$7\.$8\040$9\040"description"
哪个有效,但是我可能有不同数量的文件夹,因此在这种情况下它不会起作用。
如何才能使其适用于任意数量的文件夹?
答案 0 :(得分:1)
考虑连续使用几个正则表达式:
转换斜杠
/
=>
.
转换其余
([a-zA-Z0-9\.]+)\.(\w+)\.java
=>
a few words $1 $2 "description"
答案 1 :(得分:1)
您正在执行两个不同的流程:
/
.
使用单个正则表达式是不可能的,如果您仍想使用notepad ++的查找/替换功能,则需要进行两次替换。我建议以下替换:
将/
替换为.
(此处不需要正则表达式,但如果您/
不想替换,则会变得更加复杂,您可以使用(?:(?!^)\G|)\K/(?=[^.\r\n]*\.)
这样的正则表达式进行查找,并使用.
进行替换。
正则表达式替换
[^.\r\n]+\.((?:[^.\r\n]+\.)+[^.\r\n]+)\.([^.\r\n]+)\.[^.\r\n]+
并替换为
a few words $1 $2 "description"
我正在使用这个正则表达式,假设文件夹和文件名可以包含空格并占据整行。
答案 2 :(得分:0)
你需要重复/
字符 - 你尝试过类似的事情吗?
((.*)/)(.*)