В настоящее время я пытаюсь проверить шаблон регулярного выражения соответствия следующим образом:Regex для шестнадцатеричных цветовых кодов в bbcode?
[#123456]
[#aabc36]
А затем преобразовать в HTML-кодах:
<FONT COLOR="#123456">
Но если картина, как:
[/#123456]
затем следует заменить на
</FONT>
Я попытался следующую закономерность:
\\[#[A-Fa-f0-9]{6}\\]|\\[[A-Fa-f0-9]{3}\\]
но терпит неудачу.
И я хочу, чтобы получить извлеченный шестнадцатеричный код цвета в цвет шрифта HTML для замены.
Ниже мой метод для замены регулярных выражений:
public String replaceColor(String text , String imageLocation){
StringBuffer imageBuffer = new StringBuffer ("");
String bbcode = "\\[#[A-Fa-f0-9]{6}\\]|\\[[A-Fa-f0-9]{3}\\]";
Pattern pattern = Pattern.compile(Pattern.quote(bbcode));
Matcher matcher = pattern.matcher(text);
//populate the replacements map ...
StringBuilder builder = new StringBuilder();
int i = 0;
while (matcher.find()) {
//String orginal = replacements.get(matcher.group(1));
imageBuffer.append("<FONT COLOR=\"#123456\">");
String replacement = imageBuffer.toString();
builder.append(text.substring(i, matcher.start()));
if (replacement == null) {
builder.append(matcher.group(0));
} else {
builder.append(replacement);
}
i = matcher.end();
}
builder.append(text.substring(i, text.length()));
return builder.toString();
}
Remove 'Pattern.quote', который спасаясь все регулярные выражения метасимволы в' bbcode'. –
Как извлечь слова bbcode между [] в любом случае? –