-2

次のような文字列があります。

<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*

誰かがこれで私を助けてくれますか?

4

6 に答える 6

3

すべてを正規表現_\dで置換し、文字列を置換するだけ""です。

于 2013-05-22T13:02:10.523 に答える
2

正規表現を使用できます。

string.replaceAll("_[0-9]+", "");
于 2013-05-22T13:04:44.830 に答える
2

この正規表現はあなたのニーズに合うはずです:

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

乾杯。

于 2013-05-22T13:07:29.410 に答える
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/

于 2013-05-22T13:05:19.623 に答える
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>"));
于 2013-05-22T13:25:18.103 に答える
0

これを試して:

str = str.replaceAll("scale_\\d+", "scale");
于 2013-05-22T13:05:14.043 に答える