2015-11-08 59 views
-4

我用Java中的正則表達式引擎解析很多txt文件;而什麼都沒有發生與許多txt文件,帶有一個後續例外出現:獲得java.util.regex.PatternSyntaxException:非法重複

Exception in thread "main" java.util.regex.PatternSyntaxException: 
Illegal repetition near index 1 
b {en}http //fas org/sgp/crs/nuke/rs22542 pdf 

的匹配模式循環一組在運行時計算的字符串,程序被移除從文本中的每個匹配模式與replaceAll()但失敗當模式是非普通字符串b {en}http //fas org/sgp/crs/nuke/rs22542 pdf

這是什麼意思?我該如何解決它或讓編譯器忽略此錯誤?

+1

您還沒有我們顯示你的代碼,所以很難說具體是什麼問題。 –

+3

將'Pattern.quote()'應用於您想要逐字匹配的模式部分。 –

+2

在正則表達式中使用'{n}'來表示重複,比如'a {3}'將匹配'aaa'。正則表達式可能試圖告訴你'en'中的'en'是不正確的值。如果我不知道你想要完成什麼以及你的代碼是什麼樣的,我無法幫助你解決問題。 – Pshemo

回答

3

replaceAll是使用正則表達式語法和正則表達式{n}具有特殊的意義是一樣a{3}重複表示aaa

如果您想簡單替換字符串文字,請使用replace方法而不是replaceAll
replace基本上是replaceAll但沒有正則表達式語法(它增加了正則表達式自動轉義)。

您可以在這個帖子找到更多的信息:https://stackoverflow.com/a/33444647/1393766