用正则表达式匹配括号中内容但不包含括号

发布时间:2020-01-21编辑:脚本学堂
本文介绍了正则表达式匹配括号中内容,但不包含括号的写法,正则表达式不包含某些字符的例子,有需发的朋友参考下。

正则表达式匹配括号中的内容,不包含括号,例如:(hello) ,只要 hello 不要括号,正则表达式如何写呢?
 

复制代码 代码示例:
public static void main(String[] args) {
 String content = "(hello)";
 String regex = "(?<=().*(?=))";
 Pattern p = Pattern.compile(regex);
 Matcher m = p.matcher(content);
 while (m.find()) {
     System.out.println(m.group());
 }
    }
 
public static void main(String[] args) {
 String content = "(hello)";
 String regex = "[^()]+";
 Pattern p = Pattern.compile(regex);
 Matcher m = p.matcher(content);
 while (m.find()) {
     System.out.println(m.group());
 }
    }
 

追问
我使用的程序只能用  [^()]+ ,但是如果括号前面有内容,象 good(hello),会先匹配到 good ,如何改写一下直接匹配到 hello ?
 

复制代码 代码示例:
 public static void main(String[] args) {
  String content = "good(hello)";
  String regex = "((.*?))";
  Pattern p = Pattern.compile(regex);
  Matcher m = p.matcher(content);
  while (m.find()) {
   System.out.println(m.group(1));
  }
 }
 

也许正则可以用,只是对括号的转移不一样。