我奮力實現以下,Java正則表達式,簡單
可以說我有串:
(z) (A (z) (A (z) (A (z) (A (z) (A) ) ) ) )
我想寫一個正則表達式是取出已被制動的所有字符的左和右。即我想這回:
(z) (z) (z) (z) (z) (A)
我已經試過正則表達式的喜歡的組合:(\\s\\S(\\W \\)\\s\\S)
感謝 丹尼爾
我奮力實現以下,Java正則表達式,簡單
可以說我有串:
(z) (A (z) (A (z) (A (z) (A (z) (A) ) ) ) )
我想寫一個正則表達式是取出已被制動的所有字符的左和右。即我想這回:
(z) (z) (z) (z) (z) (A)
我已經試過正則表達式的喜歡的組合:(\\s\\S(\\W \\)\\s\\S)
感謝 丹尼爾
這種表達應該工作:
Pattern.compile("\\(\\s*\\w+\\s*\\)").matcher(input);
文字括號需要在正則表達式中逃脫,我認爲你有一些額外的成分。我顯示的正則表達式允許在parens中包含的字符之前和之後有空格。
好吧,不用這個代碼工作:Matcher regexMatcher = checkRegex.matcher(「\\(\\ s * \\ w + \\ s * \\)」) ; \t \t而(regexMatcher.find()){\t \t \t如果(regexMatcher.group()長度()= 0!){\t \t \t \t的System.out.println(regexMatcher.group()); \t}} – dgamma3
爲什麼你不按我寫的方式粘貼確切的表達式?你在paren前面使用一個反斜槓。這是錯誤的。 –
好吧,我的代碼甚至不工作,如果我這樣做:\t模式checkRegex = Pattern.compile(「s」); \t \t Matcher regexMatcher = checkRegex.matcher(「\\ w」); – dgamma3
只是逃離parens。它們在正則表達式中有特殊的含義。 –
正則表達式不適合解析像這樣的嵌套結構。爲此編寫自己的解析器將爲您提供更好的解決方案。 http://stackoverflow.com/a/133684/1583 – Oded