2011-06-22 65 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... 
相關問題