替换匹配regex java的所有字符串

时间:2013-05-22 13:00:33

标签: java regex

我有一个字符串:

<scale_1>0</scale_1><scale_2>0</scale_2><scale_3>0</scale_3>

我需要以某种方式处理它:

<scale>0</scale><scale>0</scale><scale>0</scale>

我不擅长正则表达式,我不知道怎么写一个与字符串<scale_匹配的正则表达式,最后是一个数字。

我试过了:

String str = "<scale_1>0</scale_1><scale_2>0</scale_2><scale_3>0</scale_3>";
System.out.println(str.replaceAll("[<scale_1\\d+>]", "scale"));

但这只是打印

scalescalescalescalescalescalescalescalescalescalescale/scalescalescalescalescalescalescalescalescalescalescalescalescalescalescalescalescalescalescale/scalescalescalescalescalescalescalescalescalescalescalescalescalescalescalescalescalescalescale/scalescalescalescalescalescalescalescale*

有人可以帮我这个吗?

6 个答案:

答案 0 :(得分:3)

您只需使用正则表达式_\d替换所有内容并替换字符串""

答案 1 :(得分:2)

此正则表达式应符合您的需求:

str.replaceAll("(</?scale)_[0-9]+(>)", "$1$2");

干杯。

答案 2 :(得分:1)

您可以使用正则表达式:

string.replaceAll("_[0-9]+", "");

答案 3 :(得分:1)

String类提供使用正则表达式的replaceAll()方法。

 String newString = oldString.replaceAll("_\\d+","");

http://docs.oracle.com/javase/7/docs/api/java/lang/String.html

这是一个非常基本的正则表达式。您可能需要查看:http://docs.oracle.com/javase/tutorial/essential/regex/

答案 4 :(得分:0)

试试这个:

str = str.replaceAll("scale_\\d+", "scale");

答案 5 :(得分:0)

String str = "<scale_1>0</scale_1><scale_2>0</scale_2><scale_3>0</scale_3>";
str.replaceAll("<(/?)scale_\\d>", "<$1scale>");
System.out.println(str.replaceAll("<(/?)scale_\\d>", "<$1scale>"));