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

时间:2011-06-22 04:56:56

标签: java regex

我有一个像 -

这样的模式
public static void myMethod(int Val , String Val){}

所以 public \ static \ void \ myMethod (int \ sVal \ s,\ sString \ sVal)

但是如果我的方法有比公共静态更多的空间,那么它就失败了。 那么如何制作一个具体的模式。

此外,支架内的部件无法正常工作,建议我解决问题的方法。

4 个答案:

答案 0 :(得分:4)

使用\s+匹配一个或多个匹配项,使用\s*匹配零个或多个匹配项。转义括号,使它们不被解释为分组运算符。

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

也就是说,看起来您正在尝试使用正则表达式解析Java代码。这是不可能的,因为Java(如infamous [X]HTML)不是常规语言。

答案 1 :(得分:1)

使用\s+代替

答案 2 :(得分:1)

一些事情,但你走在正确的轨道上。将\s替换为\s+以表示一个或多个空格字符。

此外,您的parens无法正常工作,因为它们是保留的正则表达式字符。你必须逃避它们以使它们被字面解释

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

答案 3 :(得分:1)

尝试使用"一个或多个"修饰符(+)匹配多个匹配项:

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