我有一个字符串:
<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*
有人可以帮我这个吗?
答案 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>"));