Java正则表达式,简单

Java正则表达式,简单,java,Java,我正在努力实现以下目标: 假设我有字符串: ( z ) ( A ( z ) ( A ( z ) ( A ( z ) ( A ( z ) ( A ) ) ) ) ) 我想写一个正则表达式,去掉所有左右两侧都有刹车的字符。i、 e.我想把这封信寄回: ( z ) ( z ) ( z ) ( z ) ( z ) ( A ) 我尝试了一些正则表达式的组合,比如:(\\s\\s(\\W\\)\\s\\s) 谢谢 daniel此表达式应适用于: Pattern.compile(

我正在努力实现以下目标:

假设我有字符串:

 ( z )  ( A ( z )  ( A ( z )  ( A ( z )  ( A ( z )  ( A )  )  )  )  ) 
我想写一个正则表达式,去掉所有左右两侧都有刹车的字符。i、 e.我想把这封信寄回:

 ( z ) ( z ) ( z ) ( z ) ( z ) ( A ) 
我尝试了一些正则表达式的组合,比如:
(\\s\\s(\\W\\)\\s\\s)

谢谢
daniel

此表达式应适用于:

Pattern.compile("\\(\\s*\\w+\\s*\\)").matcher(input);

字面上的paren需要在正则表达式中转义,我认为你有一些额外的成分。regex I show允许在parens中包含的单词chars前后使用空格。

只需转义parens即可。它们在正则表达式中有特殊的含义。正则表达式不适合解析这样的嵌套结构。为此编写自己的解析器将为您提供更好的解决方案。好的,但不使用此代码:Matcher regexMatcher=checkRegex.Matcher(“\(\\s*\\w+\\s*\”);而(regexMatcher.find()){if(regexMatcher.group().length()!=0){System.out.println(regexMatcher.group());}}为什么不按我写的方式粘贴精确表达式?在paren前面使用一个反斜杠。这是错误的。如果我这样做,我的代码甚至不工作:Pattern checkRegex=Pattern.compile(“s”);Matcher regexMatcher=checkRegex.Matcher(“\\w”);是的,现在我注意到了。将输入字符串传递给matcher,并将正则表达式传递给
Pattern.compile
。你弄错了。