2011-08-23 89 views
2

我正在使用java正則表達式模式匹配在文件中開發文本高亮器。以下是它Java正則表達式匹配

SearchQuery=preprocessedModifiedArrayList.get(i)+[\\w\\s\\W]*?"; 
pattern = Pattern.compile(SearchQuery); 
Matcher matcher = pattern.matcher(EXAMPLE_TEST); 
在這裏

代碼快照「preprocessedModifiedArrayList.get(I)」包含文件的文本進行搜索查詢。我有一個問題,當「preprocessedModifiedArrayList.get(i)」有「+」符號時(例如:如果它是一個方程),它返回懸掛+異常。

我想知道我怎麼能解決這個問題

+1

我想你忘了'''' - '... +「[\\ w \\ s \\ W] *?」;' – MByD

回答

6

您可能quote它:

SearchQuery=Pattern.quote(preprocessedModifiedArrayList.get(i))+"[\\w\\s\\W]*?"; 

報價,使它們表現爲正常的字符(如+將難逃在圖案中的每個特殊字符)。

+0

@Snicolas - 謝謝! – MByD