gpt4 book ai didi

Java 正则表达式 : extract function names

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:20:07 25 4
gpt4 key购买 nike

我正在尝试从公式中提取函数名称列表,但我的正则表达式不起作用。

给定 ( aaa(111) + bbb(222) )/ccc ( 333 ) 我需要获取包含 aaabbb< 的字符串数组ccc。相反,我得到了 aaa(bbb(ccc (。如何让它工作?

这是我的尝试:

    String formula = "( aaa(111) + bbb(222) ) / ccc ( 333 )";
Pattern pattern = Pattern.compile("((\\w+)\\s*\\()");
Matcher matcher = pattern.matcher(formula);

while(matcher.find()){
System.out.println(matcher.group(1));
}

最佳答案

您的模式中有 2 个捕获组:

  • 外括号
  • \\w+ 附近的那些>

因为你只对第二个感兴趣,你应该要么

  • 取第二组:matcher.group(2)
  • 删除外部括号:

    Pattern pattern = Pattern.compile("(\\w+)\\s*\\(");

请注意 matcher.group(0) 始终是整个模式的匹配项(因此等同于此处的外部括号)

关于Java 正则表达式 : extract function names,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29931563/

25 4 0