У меня есть проблема с методом AppendReplacement . Я обрабатываю многие источники, и случается, что некоторые из них содержат именованную группу (например, $ {name} < /code>). < /P>
Пример кода: < /p>
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class HelloWorld{
private static final Pattern SOURCE_BLOCK_PATTERN = Pattern.compile(".*?");
public static void main(String []args){
String inputText = "
something
@${xx}
something
";
Matcher matcher = SOURCE_BLOCK_PATTERN.matcher(inputText);
StringBuffer buffStr = new StringBuffer();
while (matcher.find()) {
String group = matcher.group();
group = group.replaceAll("", "");
matcher.appendReplacement(buffStr, group);
}
matcher.appendTail(buffStr);
String outputText = buffStr.toString();
}
}
< /code>
и результат: < /p>
Exception in thread "main" java.lang.IllegalArgumentException: No group with name {xx}
at java.util.regex.Matcher.appendReplacement(Matcher.java:849)
at HelloWorld.main(HelloWorld.java:17)
< /code>
Как мне выполнить такую замену, чтобы ошибки не было? < /p>
Подробнее здесь: https://stackoverflow.com/questions/605 ... n-matching
Дезинфицирующий ввод перед использованием AppendReplacemation с сопоставлением шаблонов ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Может ли кто-нибудь помочь мне в программе шаблонов шаблонов ниже [закрыто]
Anonymous » » в форуме JAVA - 0 Ответы
- 31 Просмотры
-
Последнее сообщение Anonymous
-