2012-11-22 59 views
2

我正在使用\\.(.*)}正則表達式模式來搜索我的Android測試項目中的特定字符串。當我使用這個正則表達式來檢查在線可用工具時,正則表達式看起來很好。但在Android測試項目中,我收到以下錯誤。Android |在正則表達式模式下的語法錯誤

java.util.regex.PatternSyntaxException: Syntax error in regexp pattern near index 7: 
\.(.*)} 
^ 
at java.util.regex.Pattern.compileImpl(Native Method) 
at java.util.regex.Pattern.compile(Pattern.java:400) 
at java.util.regex.Pattern.<init>(Pattern.java:383) 
at java.util.regex.Pattern.compile(Pattern.java:367) 

什麼問題?

+1

你可以發佈你使用它的字符串嗎? –

回答

7

你可以嘗試逃離你的}: -

"\\.(.*)\\}" // escaping `}` not needed in Java 

我不知道爲什麼它不android工作,但在Java它工作正常without escaping它。

但是,如果您使用的是開大括號,那麼即使在Java中,你需要逃避它: -

"\\.(.*)\\{" // escaping `{` needed even in Java 
+0

我需要使用打開和關閉的大括號,並且我必須爲這兩者都放置轉義符。 –

+0

@ g.revolution ..其實,並不知道它在Android中以這種方式工作。 –

+0

thanx答案儘管.. @尼基塔提到你的答案是第一:D ..所以選擇你的答案是正確的。 –

5

你需要逃避}作爲@Rohit Jain說:

String regex = "\\.(.*)\\}"; 

您的正則表達式可以在java中工作,但由於某種原因它在android上失敗。

+0

yups ..得到了它的工作..我逃脫}也和它的工作..我做過之前,閱讀答案雖然:D,但我仍然會在8分鐘內接受:-p –

+0

你應該接受@Rohit Jain回答比:)他是第一個 –

+0

我看到了你的第一個..我刷新了也如你所說的@rohit ..但rohit的答案是不是沒有顯示給我..現在..我已經接受他.. ..謝謝你的答案 –