Regex или Java конвертируют определенные регионы в нижнюю строку - PullRequest
1 голос
/ 06 ноября 2011

У меня есть фрагмент регулярного выражения "([A-Z]|_)*", чтобы найти значения атрибутов в верхнем регистре в документе XML. Я хотел бы превратить все выводы в нижний регистр. Я знаю, что могу ссылаться на найденную группу со знаком $, но как я могу передать значение переменной $ в функцию toLowerCase(). Меня не волнует, включает ли решение Java или простой текстовый редактор, потому что это одноразовые задания.

Спасибо.

1 Ответ

1 голос
/ 06 ноября 2011

Прежде всего, для этой конкретной задачи вы, вероятно, должны использовать вместо этого анализатор XML. Тем не менее, с регулярными выражениями вы можете использовать Matcher для хранения захваченных групп:

Pattern p = Pattern.compile("([A-Z]|_)+"); 
String s = "test=\"UPPERCASE\" other=\"lowercase\" map=\"UPPER\"";
Matcher m = p.matcher(s);
while (m.find()) {
  String group = m.group(0);
  System.out.println(group.toLowerCase());  // will print "uppercase" and "upper"
}
...