是否可以编写一个正则表达式,将包路径提取到 .java 文件中?
像这样:
package java.awt.event;
// java code
对此
java.awt.event
哪个我可以解析到文件夹位置?
java/awt/event/
我不知道一个包可以有哪些字符,或者是否可以添加多个包。
最佳答案
"package\\s+([a-zA_Z_][\\.\\w]*);"
一个java文件的开头只能有一个包。只有单词字符和“.”是允许的。
"package\\s+" => the work "package" followed by at least one space
"(" => start of capture
"[a-zA-Z_]" => first character of package (doesn't include numeric digits)
"[\\.\\w]*" => any number of word characters (a-zA-Z0-9_) plus the "." character
")" => end of capture
";" => end of line
实际上这不是最好的,因为它不强制每个文件夹的第一个字符不是数字,但是它可以在不完全强制执行规则的情况下工作。在这种情况下,以下可能更容易:
"package\\s+([\\w\\.]+);"
关于java - 是否可以编写正则表达式来提取 java 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7731121/