2011-06-22 36 views
0

我有这样一个模式 -会有什么的正则表达式我需要的模式

public static void myMethod(int Val , String Val){} 

所以公共\静态\无效\ myMethod的(INT \ SVAL \ S \ sString \ SVAL)

但如果我的方法有更多的空间比一个像公共静态它失败。 那么如何制作一个具体的图案。

此外,支架内的部分不工作,建议我解决的方法。

回答

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

我只是在逗号前用*改变了+ – jclozano

+0

谢谢 - 。逗号后也是。 –

+0

欢迎您使用正则表达式 –

1

使用\s+,而不是

+0

'\ s *'不允许有空格,并且'privatestaticvoid'不合法 –

+0

@Ben真的,我输入得太快了:P – OscarRyz

1

有几件事情,但你是在正确的轨道上。将\s替换为\s+以指示一个或多个空格字符。

此外,您的parens不工作,因为它们是保留的正则表达式字符。你必须逃避他们,让他们从字面上解释

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

尝试使用“一个或多个”修饰符(+)来匹配多个实例:

public\s+static\s+void\s+myMethod... 
相关问题