如何在python中使用正则表达式匹配以Map开头的java方法

rjee0c15  于 2023-03-28  发布在  Python
关注(0)|答案(1)|浏览(93)

我在Python中使用下面的正则表达式来读取.java文件并识别所有方法,但有些方法被跳过了。
我正在使用以下正则表达式

pattern = r"(public|private|protected|static|\s) +[\w\<\>\[\]]+\s+(\w+) *\([^\)]*\) *(\{?|[^;])"

有一些方法我无法匹配,就像所有以Map<...>开头的方法一样,例如:

Map<String, RouteTarget> getRoutes() {
        return this.root.getRoutes();
    }

但是如果我在[regex101]上尝试它,它就能工作。为什么?Screenshot

ve7v8dk2

ve7v8dk21#

我用regex解决了:

(\w*)<(\w+).+> ?\w+\(.*\)|(public|private|protected|static|\s) +[\w\<\>\[\]]+\s+(\w+) *\([^\)]*\) *(\{?|[^;])

@markalex:是的,我确实看了一眼,但不明白这是适合我的情况的正确 Package 。

相关问题