是否有更有效的方法来分割字符串?
String input = "=example>";
String[] split = input.split("=");
String[] split1 = split[1].split(">");
String result = split1[0];
结果将是“示例”。
答案 0 :(得分:2)
答案 1 :(得分:1)
你真的需要正则表达式吗?你可以这样做:
String result = input.substring(1, input.length()-1);
否则,如果你真的有正则表达式的情况,那么使用字符类:
String result = input.replaceAll("[=>]", "");
答案 2 :(得分:1)
如果您只是想从中做出示例:
input.substring(1, input.lastIndexOf(">"))
答案 3 :(得分:1)
如果您的string
绝对是常量格式,请使用子字符串,否则请转到正则表达式
result = result.substring(1, result.length() - 1);
答案 4 :(得分:1)
使用RegEx组可以更优雅:
String sourceString = "=example>";
// When matching, we can "mark" a part of the matched pattern with parentheses...
String patternString = "=(.*?)>";
Pattern p = Pattern.compile(patternString);
Matcher m = p.matcher(sourceString);
m.find();
// ... and access it later
String result = m.group(1);
答案 5 :(得分:0)
您可以尝试使用此正则表达式:".*?((?:[a-z][a-z]+))"
但是当你使用这样的东西时会更好:
String result = input.substring(1, input.length()-1);
答案 6 :(得分:0)
试试这个
String result = input.replace("[\\W]", "")
答案 7 :(得分:0)
你也可以尝试这个
String input = "=example>";
System.out.println(input.replaceAll("[^\\p{L}\\p{Nd}]", ""));
这将删除所有非单词字符
答案 8 :(得分:0)
Regex可以完美地完成这项工作,但只是为未来的解决方案添加新内容,您也可以使用Google提供的第三方库,例如Guava,它为您的项目添加了许多功能,Splitter是真的很有帮助解决你的问题。