我有一個使用正則表達式發送給它並使用它從字符串檢索值的服務運行。Java正則表達式:後面的組沒有「明顯的最大長度」
我可以在類中創建一個主要的方法,並調試正則表達式(?<=\\().+?(?=\\){1})
,它的工作原理是完美的。
但是,只要我在Tomcat中部署遠程測試,我得到以下異常:
Look-behind group does not have an obvious maximum length near index 19
(?<=\\().+?(?=\\){1})
^
下面是解析出一個正被調用值的函數:
private String parsePattern(String value, String pattern)
{
String ret = "";
Matcher m = Pattern.compile(pattern).matcher(value);
while (m.find())
{
ret = m.group(0);
}
return ret;
}
這是怎麼回事,導致它在應用程序中編譯,但不能在webapp中工作?
編輯:
此失敗,任意字符串,但目前被檢查的字符串是:「(集團營改造)」
當從main
調用,則該方法返回「組營改造」的時候,通過webapp調用,它引發異常。
'''Pattern.compile()'從主方法運行時可以完美地使用相同的正則表達式。我知道這是一個運行時異常,我想知道爲什麼它只在某些情況下拋出。 – cxdf
我希望你沒有使用'{1}',這只是你真正擁有的一個壞例子 – HamZa
Pattern.compile()將不起作用,除非我添加了{1} – cxdf