У меня есть строка, как:Заменить все строки, которые соответствует регулярному выражению Java
<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*
Может кто-нибудь помочь мне с этим?
Поскольку ни один из нижеприведенных ответов не объясняет это. , , проблема с вашим кодом заключается в том, что '[' и ']' не означает, что это так, как вы думаете. В регулярном выражении '[]' означает «любые' <',' s', 'c',' a', 'l',' e', '_',' 1', digit, '+', или '>'. Если вы должны были отбросить '' '' '' '' 'и удалить посторонний' 1', ваш код будет работать отлично. –
ruakh