java string.split()正则表达式帮助

时间:2011-02-16 06:14:25

标签: java regex string

如果我有一个变量字符串,用于存储较大字符串中不同的字符部分,如何使用带有正则表达式的split命令将较大的字符串拆分为较小的字符串?

例如,字符串变量可以存储“def” 较大的字符串可能是“abcdefghi”

当使用正则表达式输入作为字符串变量执行split命令时,生成的拆分将如下所示:

ABC GHI

编辑:这是代码

String string = new String("2+22*5-1*2");
String multiply = new String("22*5");

int leftNum = Integer.parseInt(multiply.split("\\*")[0]);
int rightNum = Integer.parseInt(multiply.split("\\*")[1]);

System.out.println(string);
System.out.println(multiply);
System.out.println(leftNum * rightNum);

//the following should print "2+"
String left = string.split(multiply)[0];
System.out.println(left);

3 个答案:

答案 0 :(得分:1)

"abcdefghi".split("def")将产生{"abc", "ghi"}

答案 1 :(得分:0)

您必须转义*以使用multiply的内容作为正则表达式(split的参数是正则表达式):

 String regexp = multiply.replace("*", "\\*");
 String left = string.split(regexp)[0];

这应打印预期结果(2+

答案 2 :(得分:0)

string.split("\\Q" + substring + "\\E");

\ Q和\ E为你排除元字符。