我目前正在努力使用文本解析器来格式化带有自己HTML标签的java受保护单词。
所以我想要
class HelloWorld
以字符串形式显示
<span class= "class">class</span> HelloWorld
我设法开始工作,但是类是受保护的单词,所以我希望能够使用正则表达式来区分
class
和
"class" or class=
这是我目前的代码。
word = word.replaceAll("\\b"+javaWord+"\\b",addTag(javaWord,javaWord));
真的很挣扎,所以感谢任何帮助吗?
答案 0 :(得分:2)
而不是"\\b"+javaWord+"\\b"
,请尝试
"(?<![\\w\"])"+javaWord+"(?![\\w\"=])"
但是@sgusc提出了一个很好的观点:这种技术无法扩展到处理较长字符串文字或评论中的关键字。
答案 1 :(得分:0)
你最好创建自己的状态机来迭代输入,每次看到空格(或只是非字母字符),然后根据你刚刚传递的单词刷新缓冲区
这样当您传递"
时,您会忽略直到下一个(未转义的)"
(与<
和>
相同)(或者只是将其视为一个字)周围有<span class="string">
;)