Я использую регулярное выражение для извлечения некоторых значений в группах и помещения этих значений в другой раздел моей новой строки, но мне нужно внести еще одно изменение в захваченную группу до выполнения replaceAll, у меня есть этот код:
String regex = "<button data-key=\"([^\"]*)([^<]*)</button>";
while ((strLine = br.readLine()) != null) {
String newStr = strLine.replaceAll(regex, "<button data-key=\"$1$2<span>&#x$1</span></button>");
}
Это работает нормально, извлекая значение data-key (Group1 / $ 1) в тег span, когда значение простое (без «-» в нем), но когда ключом данных является, например, 1f1e8- 1f1e6 значение извлекается так: ?-1f1e6, поэтому я подумал, можно ли сделать что-то вроде этого:
String newStr =
strLine.replaceAll(regex,
"<button data-key=\"$1$2<span>&#x" + "$1".replaceAll("-", "&#x") + "</span></button>");
replace "-" -> "& # x" за $ 1 в replaceAll функция, но пока безуспешно, мне нужно перейти на Matchers? или любая помощь в лучшем подходе для этого сценария была бы признательна, спасибо.
Edit1:
CURRENT :
<button data-key="1f1e8-1f1e8-1f1e8"><span>🇨-1f1e8-1f1e8</span></button><button data-key="1f1e8-1f1e9"><span>🇨-1f1e9</span></button>
EXPECTED :
<button data-key="1f1e8-1f1e8-1f1e8"><span>🇨🇨🇨</span></button><button data-key="1f1e8-1f1e9"><span>🇨🇩</span></button>
Редактировать2: ВХОД:
<button data-key="1f1e8-1f1e8-1f1e8"></button>
<button data-key="1f1e8-1f1e9"></button>
Редактировать3: ВСЕ ВХОД:
<div>
<h3>GG</h3>
<div class="ep-categoryItems">
<button class="ep-item" data-key="1f1e8-1f1e8-1f1e8" title="Grinning face" style="background-image: url('${cdn}/images/emoji/f1e8-1f1e8-1f1e8.png');"></button>
<button class="ep-item" data-key="1f1e8-1f1e9" title="Grinning face" style="background-image: url('${cdn}/images/emoji/1f1e8-1f1e9.png');"></button>
</div>
<div