Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 忽略正则表达式中括号之间的文本_Java_Regex - Fatal编程技术网

Java 忽略正则表达式中括号之间的文本

Java 忽略正则表达式中括号之间的文本,java,regex,Java,Regex,我的目标是读入字符串并忽略括号中的文本 public static void main(String[] args) { Pattern checkRegex= Pattern.compile("([a-zA-Z]{3,30}\\s*){2}"); Matcher regexMatcher=checkRegex.matcher("James Hunt(Skateboarder)"); while(regexMat

我的目标是读入字符串并忽略括号中的文本

public static void main(String[] args) {
    Pattern checkRegex= Pattern.compile("([a-zA-Z]{3,30}\\s*){2}");
    
    Matcher regexMatcher=checkRegex.matcher("James Hunt(Skateboarder)");
    
    while(regexMatcher.find()){
    System.out.println(regexMatcher.group().trim());
}
电流输出为:

詹姆斯·亨特

滑板运动员

基本上我想要的是输出为“jameshunt”。
在这种情况下,什么是合适的正则表达式模式?

这将适用于给定字符串中的所有非嵌套括号:

String input = "James Hunt(Skateboarder)";
String output = input.replaceAll("\\([^)]*?\\)", "");
基本上我想要的是输出为“jameshunt”。 在这种情况下,什么是合适的正则表达式模式


尝试regex:
^[^(]*

如果不必使用regex,只需一次简单的迭代即可获得数据

String data="some (sentence (with) nested) paranhesis";
StringBuilder buffer=new StringBuilder();
int parenthesisCounter=0;
for (char c:data.toCharArray()){
    if (c=='(') parenthesisCounter++;
    if (c==')') parenthesisCounter--;
    if (c!=')' && c!='(' && parenthesisCounter==0)
        buffer.append(c);
}
System.out.println(buffer);
输出:

some  paranhesis

我同意,正则表达式在这种情况下没有意义。但是作业要求它。。。