gpt4 book ai didi

java - 正则表达式解析Java中的类声明行

转载 作者:行者123 更新时间:2023-12-01 05:32:46 26 4
gpt4 key购买 nike

需要使用正则表达式解析 Java 中的类声明行,例如

String line = "public class ActionDiagramReader extends XReader implements ActionHandler, Action {";
String line = "public class ActionDiagramReader extends XReader{";

我正在尝试使用这个正则表达式

String regExp = ".*class\\s+(\\w+)(\\s+extends\\s+(\\w+))?(\\s+implements\\s+(\\w|,)+)?\\{.*$";
Pattern pattern = Pattern.compile(regExp, Pattern.DOTALL | Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);
Matcher match = pattern.matcher(line1);

但是这个正则表达式无法解析类名/扩展程序类名/实现程序类名。只需识别与给定行关联的所有类和接口(interface)。

我的正则表达式中有什么不正确的地方。提前致谢

最佳答案

正则表达式中的最后一部分没有捕获操作。

(\\s+implements\\s+(\\w|,)+)?\\{.*$

它捕获 ActionHandler,然后死掉,因为它接下来正在寻找大括号。在下面的示例中,我将最后的\w 放入方括号中,并添加\s 来捕获任何空格,这样它也会捕获行末尾的“操作”。

(\\s+implements\\s+([\\w,\\s]+))?\\s*\\{.*$

看看这是否适合您。

关于java - 正则表达式解析Java中的类声明行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8708267/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com