У меня есть следующий шаблон: < /p>
Pattern TAG = Pattern.compile("()|()");
< /code>
Обратите внимание на | в шаблоне. < /p>
, и у меня есть метод, который выполняет некоторую обработку с этим шаблоном < /p>
private String format(String s){
Matcher m = TAG.matcher(s);
StringBuffer sb = new StringBuffer();
while(m.find()){
//This is where I need to find out what part
//of | (or) matched in the pattern
// to perform additional processing
}
return sb.toString();
}
< /code>
Я хотел бы выполнять различные функции в зависимости от того, какая часть или сопоставлена в
regex. Я знаю, что я могу разбить шаблон на 2 разных шаблона и соответствовать каждому, но это не то решение, которое я ищу, потому что моя реальная регулярная эксплуатация гораздо сложнее, и функциональность, которую я пытаюсь выполнить, будет работать лучше всего, если я смогу сделать это в одной петле и режиме. Итак, мой вопрос: < /p>
Есть ли способ в Java для выяснения, какая часть или сопоставлена в Regex? Это не работает для моего дела. Пример ниже
печатает и , поэтому для первой итерации цикла, который он соответствует
и вторая итерация, она соответствует . Однако мне нужно знать, какая часть соответствует каждой итерации. < /P>
static Pattern u = Pattern.compile("|");
public static void main(String[] args) {
String xml = "044453";
Matcher m = u.matcher(xml);
while (m.find()) {
System.out.println(m.group(0));
}
}
Подробнее здесь: https://stackoverflow.com/questions/173 ... or-matched