java - 正则表达式匹配任何合法的java函数声明的格式

标签 java regex

正则表达式是我的弱点。

我正在寻找一种正则表达式或其他技术,可以让我读取任意字符串并确定它是否是有效的java函数。

好:

public void foo()
void foo()
static protected List foo()
static List foo()

坏:

public List myList = new List()

代码:

For String line : lines.
{    
     If(line.matches("(public|protected|private)*(/w)*(")
}

是否有这样一个正则表达式,如果它是一个有效的java函数,它将返回true?

最佳答案

/^\s*(public|private|protected)?\s+(static)?\s+\w+\s+\w+\s*\(.*?\)\s*$/m

匹配:

  • 行首<^>
  • 任意空白<\s*>
  • 可选范围<(public|private|protected)?>
  • 至少一个空格<\s+>
  • 可选关键字 static <(static)?>
  • 至少一个空格<\s+>
  • 一个java标识符(你应该希望它是一个类名或文字)<\w+>
  • 至少一个空格<\s+>
  • Java 标识符(函数名称)<\w+>
  • 打开括号<(>
  • 任意参数(这里没有进行检查,因为一片困惑)<.*?>
    • 执行惰性匹配
  • 关闭括号<)>
  • 任意空格<\s*>
  • 行尾

这还远未完成,但应该可以满足您的需求。

关于java - 正则表达式匹配任何合法的java函数声明的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12392473/

相关文章:

javascript - 避免 HTML 标记中灾难性的回溯

java - android studio如何在模拟器中看到更多的手机型号

java - 有时在 exoplayer 中的视频缓冲速度很慢?

java - 无法使用 WSDLToJava 和 Apache CXF 3.1.6 为 Web 服务生成 java 代码

java - Selenium : stale element reference: element is not attached to the page document

mysql - 如何提取MySQL字符串中的第n个单词并统计单词出现次数?

php - 从 javascript 函数解析链接

java - Intellij 2021.3.2,JavaFX Maven 项目未正确解析依赖项

php - 如何从 URL 获取视频 ID? (维密欧)

regex - 用不同的字符但相同的数量替换字符串中的多个点