0
當我嘗試將此轉換「(| {|;)」正則表達式的字符串,Java的給了我這樣的例外:爲什麼'{'在這個正則表達式中不被接受?
Exception in thread "main" java.util.regex.PatternSyntaxException: Illegal repetition near index 2
(|{|;)
^
我該如何解決呢?
當我嘗試將此轉換「(| {|;)」正則表達式的字符串,Java的給了我這樣的例外:爲什麼'{'在這個正則表達式中不被接受?
Exception in thread "main" java.util.regex.PatternSyntaxException: Illegal repetition near index 2
(|{|;)
^
我該如何解決呢?
錯誤與{
被視爲限制量詞的開始(例如{1,2}
)。您需要將其轉義或在角色類中使用。
用正則表達式判斷你有 - (|{|;)
- 問題出在特殊的正則表達式處理上。既然你想要匹配一個空格,一個大括號或一個分號,建議使用一個字符類而不是一個替換組。
因此,使用
([ {;])
字符類是一個更好的解決方案,交替,因爲它涉及較少的回溯。
I猜測你正在分裂,否則,刪除圓括號(捕獲組)。 –
通過將'{'與'['和']':'[{]'括起來。如果你需要匹配一個空格,或者一個大括號或一個';',把它們全部添加到字符類中:'[{;]' –
看到表達本身就像看堆棧跟蹤一樣有用 – SomeJavaGuy
謝謝stribizhev –