Java Regex找到没有=结尾的单词

时间:2011-06-01 00:09:32

标签: java regex

我目前正在努力使用文本解析器来格式化带有自己HTML标签的java受保护单词。

所以我想要

class HelloWorld

以字符串形式显示

<span class= "class">class</span> HelloWorld

我设法开始工作,但是类是受保护的单词,所以我希望能够使用正则表达式来区分

class

"class" or class=

这是我目前的代码。

word = word.replaceAll("\\b"+javaWord+"\\b",addTag(javaWord,javaWord));

真的很挣扎,所以感谢任何帮助吗?

2 个答案:

答案 0 :(得分:2)

而不是"\\b"+javaWord+"\\b",请尝试

"(?<![\\w\"])"+javaWord+"(?![\\w\"=])"

但是@sgusc提出了一个很好的观点:这种技术无法扩展到处理较长字符串文字或评论中的关键字。

答案 1 :(得分:0)

你最好创建自己的状态机来迭代输入,每次看到空格(或只是非字母字符),然后根据你刚刚传递的单词刷新缓冲区

这样当您传递"时,您会忽略直到下一个(未转义的)"(与<>相同)(或者只是将其视为一个字)周围有<span class="string">;)