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
我同意,正则表达式在这种情况下没有意义。但是作业要求它。。。