Java正则表达式删除字符' i'之间的所有内容。和':'

时间:2016-11-01 10:46:21

标签: java regex

我有以下字符串

"{TEXT=9201i3:9830i22:90400i11:92710i7:94500|HELLO_UK}"

我需要做以下事情:

  1. 删除i:之间的所有内容,并将其替换为,
  2. 删除{TEXT=
  3. 删除|HELLO_UK}
  4. 我想以"9201,9830,90400,92710,94500"

    结束

    我已尝试过它,但它并没有完全符合我的要求。以下是我写的:

    numbers = numbers.replaceAll("\\D.*?:", ",");
    

    我得到以下结果:",9830,90400,92710,94500|HELLO_UK}"

    注意它是如何删除第一组数字的(9201)。

    有人可以建议我应该使用的正则表达式吗?

2 个答案:

答案 0 :(得分:2)

你走了:

String str = "{TEXT=9201i3:9830i22:90400i11:92710i7:94500|HELLO_UK}"
        .replaceAll("(\\{TEXT=|\\|HELLO_UK\\})", "")
        .replaceAll("i(.*?):", ",");

System.out.println(str);

答案 1 :(得分:0)

您还可以尝试以下操作:

String str = "{TEXT=9201i3:9830i22:90400i11:92710i7:94500|HELLO_UK}";
str.replaceAll("[(A-Z)*{|}_=]", "")
   .replaceAll("[i:]", ",");

System.out.println(str);

输出

9201,3,9830,22,90400,11,92710,7,94500