2013-01-15 165 views
1

我需要提取以下模式:的Java模式多匹配

public void convert(String sourceName, String destName, 
     ProgressListener progressListener, Decoder.Params decoderParams) 
     throws JavaLayerException 

,也可以有我使用的

public void convert(String sourceName, String destName) 

public void convert(String sourceName, String destNam) 
     throws JavaLayerException 

形式下面的模式,但模式只是確定第二個原型而不是第一和第三。 使用的模式是:

Pattern exp = Pattern.compile("([^(\n\t]*)"+Pattern.quote(obracket)+"([^()\n\t]*)"+Pattern.quote(cbracket)); 
where obracket="(" and cbracket=")"; 

任何建議或幫助將不勝感激。

+1

所以,你使用的是Java讀取和解析Java編寫的一個文件?這似乎是一個相當大的代碼氣味。你究竟在努力完成什麼? – 2013-01-15 14:57:34

+0

傑克指出,你是否試圖解析這... – Anirudha

回答

0

你可以使用這個表達式與singleline模式..

\\s+(public|private|protected)?\\s+\\w+\\s+[\w$]+\\([^()]*\\)\\s+(throws\\s+[\\w$]+)? 
+0

通過'singleline',你的意思是'DOTALL'模式?或者你是否說*不*設置'MULTILINE'模式?無論如何,這並不重要,因爲正則表達式中的任何內容都不受「DOTALL」或「MULTILINE」或模式的影響。 –