比这更有效的分裂方式?

时间:2013-08-08 10:52:27

标签: java regex

是否有更有效的方法来分割字符串?

String input = "=example>";
String[] split = input.split("=");
String[] split1 = split[1].split(">");
String result = split1[0];

结果将是“示例”。

9 个答案:

答案 0 :(得分:2)

String result = input.replaceAll("[=>]", "");

非常简单的正则表达式!

要了解详情,请访问以下链接:here

答案 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是真的很有帮助解决你的问题。