正则表达式获取括号外的字符串

时间:2017-06-24 16:55:42

标签: java regex

我正在寻找一种方式(正则表达式)来获取java中括号之外的任何东西

String sample = "Hi all(igi)";

输出如

Hi all

搜索了很多,但无法在堆栈或谷歌上找到它

我在尝试什么

Matcher m = Pattern.compile("(?:[^<>(^)]++)").matcher(abc);
while (m.find()) {
    String newName = m.group(0);
    System.out.println(newName);

}

它给了我两个文本

我也想要一个正则表达式而不是一种解决方法(我想它只能在正则表达式中完成) 如果你得到了我想要学习如何实现它的答案,也可以解释正则表达式

1 个答案:

答案 0 :(得分:1)

您可以轻松地将replaceAll与一些正则表达式\(.*?\)一起使用,这意味着替换括号之间的所有内容,因此最终您将只获得不在括号之间的结果:

sample = sample.replaceAll("\\(.*?\\)", "");

示例:

Input                        Output

Hi all(igi)                  Hi all
Hi all(igi) Some string      Hi all Some string