gpt4 book ai didi

java - bbcode 中十六进制颜色代码的正则表达式?

转载 作者:太空狗 更新时间:2023-10-29 16:39:13 29 4
gpt4 key购买 nike

我目前正在尝试测试匹配以下内容的正则表达式模式:

[#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();
}

最佳答案

试试这个

    s = s.replaceAll("\\[#(\\w{6}|\\w{3})]", "<FONT COLOR=\"#$1>\">")
.replaceAll("\\[/#(\\w{6}|\\w{3})]", "</FONT>");

关于java - bbcode 中十六进制颜色代码的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20985381/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com