java - 是否可以编写正则表达式来提取 java 包?

标签 java regex package

是否可以编写一个正则表达式,将包路径提取到 .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/

相关文章:

java - 如何使用在 java 中的其他方法中返回的数组?

ios - 用于捕获组中主题标签的正则表达式

java - VARARRAY 是 DB2 中的数据类型吗?

java - 通知不适用于 Android 4.0

django - 使用 REGEX 在 pre-commit-config.yaml 中排除 Django 自动生成的文件

javascript - 使用正则表达式匹配字符串中的键和值

氧气 : export imported function

go - 当 init() 函数之间存在依赖关系时,如何将包拆分为多个文件?

c - 加载 DLL 时出错

java - 在 JavaFX 中使用 If/Else 语句