gpt4 book ai didi

java - 在JAVA中使用REGEX从方法调用中提取参数

转载 作者:行者123 更新时间:2023-12-02 03:34:13 26 4
gpt4 key购买 nike

我有这个正则表达式:

([A-Za-z]+[\w_]*)\s*\(([[A-Za-z]+[\w_]*\s,?]*)

这个正则表达式应该找到这样的字符串:

foo(param1,param2,param3......)

第一组是名称(必须以字母开头),之后是我不确定的第二组。问题是我不知道我会收到多少参数。第二部分假设找到零个或多个参数的串联,所有参数都采用相同的格式 [A-Za-z]+[\w_]。我尝试在其周围添加一个 [] 并在末尾添加一个 * 。我如何能够匹配所有参数并将其提取到数组列表中?它甚至是正确的 REGEX 语法吗?

最佳答案

您可以使用此正则表达式:

([a-zA-Z][a-zA-Z0-9_$]+)\s*\(\s*([a-zA-Z0-9_$]+(?:\s*,\s*[a-zA-Z0-9_$]+)*)\s*\)
  • ([a-zA-Z][a-zA-Z0-9_$]+)部分
    • [a-zA-Z] 用于第一个字符 - 必须是字母。
    • [a-zA-Z0-9_$]* 代表名称的其余部分 - 可能包括字母、数字、_$
  • \s* 表示空格。 (有些人把它们放了。)
  • \( 代表 (.
  • \s* 再次代表空格。
  • [a-zA-Z0-9_$]+ 用于第一个参数。
  • (?:\s*,\s*[a-zA-Z0-9_$]+)* 用于其余参数。
    • \s* 再次代表空格。
    • , 用于匹配,
    • \s* 再次代表空格。
    • [a-zA-Z0-9_$]+ 用于参数名称。
    • 开头的 (?:)* 会找到尽可能多的额外参数。
  • \s* 再次代表空格。
  • \) 用于右括号。

关于java - 在JAVA中使用REGEX从方法调用中提取参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37641861/

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