【发布时间】:2012-01-27 21:55:22
【问题描述】:
我正在编写一个 jQuery 插件来突出显示我网页上的 C++ 代码。我不太擅长正则表达式,所以我不知道如何在不突出显示部分单词的情况下突出显示关键字(如“if”、“case”、“void”等)(如“int”中的'画')。我改变了一点,但有些东西仍然没有突出显示。这就是我的 RegEx 的样子:
str = str.replace(new RegExp("([' ' || \t ||,|| \"\"])(" + ParserKeywordsArr[i] + ")", 'g'), "$1<span style='color:" + ParserColorsArr[i] + ";'>" + ParserKeywordsArr[i] + "</span>");
这会遍历我想要突出显示的每个关键字,这些关键字存储在一个数组中,还有另一个带有颜色的数组(例如 ParserKeywordsArr[0] 是无效的,ParserColorsArr[0] 是蓝色的,所以它会以蓝色突出显示) .但是,当我输入这样的内容时:
void CCodeEditorCtrl::OnPaint(WPARAM wParam, LPARAM lParam)
{
return;
}
Return 会突出显示,但 void 不会。我不知道如何告诉正则表达式“如果它是该行的第一个单词,并且它与关键字匹配,则突出显示它”
【问题讨论】:
-
您需要在这个项目中熟练使用正则表达式...
标签: javascript regex