Аргументы Java Regex - PullRequest
       3

Аргументы Java Regex

5 голосов
/ 18 декабря 2010

Так что, если бы я хотел заменить все числа заданным значением, я мог бы просто использовать

"hello8".replaceAll("[1-9]", "!");

привет!

Теперь есть способ получитьчисло, которое на самом деле сопоставляется, и добавить его в строку?

например,

привет! 8

Ответы [ 3 ]

7 голосов
/ 18 декабря 2010

Один из вариантов - установить группу захвата:

"hello8".replaceAll("([1-9])", "!$1");

Другой вариант - использовать $0, что означает полное совпадение:

"hello8".replaceAll("[1-9]", "!$0");

См. Также: регулярные выражения.info / java

1 голос
/ 18 декабря 2010

Вы можете сделать что-то вроде этого

"hello8".replaceAll("([1-9])", "!$1");

См. javadoc

0 голосов
/ 18 декабря 2010

Вот, пожалуйста!

String s = "hello8";
String y = null;
String t = null;
Pattern p = Pattern.compile("[1-9]");
Matcher m = p.matcher(s);
while(m.find()) {
    y = (m.group());
    t = "!"+y;
    s = s.replace(y.toString(), t.toString());
}
System.out.println(s);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...