Java 我需要的模式的正则表达式是什么

Java 我需要的模式的正则表达式是什么,java,regex,Java,Regex,我有一个这样的模式- public static void myMethod(int Val , String Val){} 所以public\static\void\myMethod(int\sVal\s\sString\sVal) 但是,如果我的方法比publicstatic方法有更多的空间,它就会失败。 那么如何制作一个具体的图案呢 此外,括号内的部分不起作用,请向我建议解决方法。使用\s+代替一些事情,但您的思路是正确的。将\s替换为\s+,以指示一个或多个空白字符 此外,您的pare

我有一个这样的模式-

public static void myMethod(int Val , String Val){}
所以public\static\void\myMethod(int\sVal\s\sString\sVal)

但是,如果我的方法比publicstatic方法有更多的空间,它就会失败。 那么如何制作一个具体的图案呢


此外,括号内的部分不起作用,请向我建议解决方法。

使用
\s+
代替一些事情,但您的思路是正确的。将
\s
替换为
\s+
,以指示一个或多个空白字符

此外,您的paren不起作用,因为它们是保留的正则表达式字符。你必须逃离它们,让它们被逐字解释

/public\s+static\s+void\s+myMethod\s*\(\s*int\s+Val\s*,\s*String\s+Val\s*\)/
尝试使用“一个或多个”修饰符(
+
)匹配多个匹配项:

public\s+static\s+void\s+myMethod...

使用
\s+
匹配一个或多个事件,使用
\s*
匹配零个或多个事件。对括号进行转义,使其不被解释为分组运算符

public\s+static\s+void\s+myMethod\s*\(\s*int\s+Val\s*,\s*String\s+Val\s*\)

也就是说,看起来您正试图用正则表达式解析Java代码。这是不可能的,因为Java(如)不是一种常规语言。

\s*
不允许空白,而
privatesticvoid
不允许空白legit@Ben是的,我输入的太快了:PI会在命令之前用a*改变+实际上我只想从java读取方法,我得到了同样的JavaParser,所以现在我正在做所有参数、返回类型和方法名称的组装工作,以生成一个完整的方法,然后重新验证。谢谢,这已经成功了:),你能告诉我a*的重要性吗?因为当我更改它时,我发现它只接受字块之间的1个空格。