我正在处理HTML解析器的文本。我正在使用" @@"标记大胆字符的符号。实施例
Example @@Bold text in a paragraph
转向:
Example <strong>Bold</strong> text in paragraph
以下代码有效,但我发现它只适用于最后一个Bold符号:
private static String escapeBold(String sCurrentLine) {
if (sCurrentLine.indexOf("@@") < 0) {
return sCurrentLine;
}
String newString = null;
String oldString = null;
String chars[] = sCurrentLine.split(" ");
for (String s : chars) {
if (s.startsWith("@@")) {
newString = "<strong>" + s.replaceAll("@@", "") + "</strong>";
oldString = s;
}
}
return (sCurrentLine.replaceAll(oldString, newString));
}
有没有更简单的方法,可能使用RegExpr? 谢谢!
答案 0 :(得分:5)
看起来您的方法看起来像
private static String escapeBold(String sCurrentLine) {
return sCurrentLine.replaceAll("@@(\\w+)", "<strong>$1</strong>");
}
它会尝试找到每个@@someWord
并将someWord
部分放在第1组中。作为替代,我们通过$1
使用存储在第1组中的匹配,并使用{{1标签。
要理解此代码,您需要知道<strong>
使用正则表达式(正则表达式)来查找我们要修改的部分,replaceAll(regex,replacement)
描述了我们要如何修改它。
正则表达式replacement
表示范围\\w
a-z
A-Z
和0-9
中的字符。如果要包含其他字符,可以创建自己的字符类,或使用代表所有非空白字符的_
。