我想用Java实现一个简单的语法高亮程序,通过正则表达是来匹配关键字、注释之类的字段并替换为如<font color="red">匹配到的字段</font>这样的HTML字符串,这样就能达到高亮的效果。
但考虑到要进行高亮处理的代码串中可能包含如>、<、"和&等字符,则必须把这些字符转换为如如<这样的HTML实体才能在HTML页面中正常显示。
我所考虑到的不可行思路如下:
1. 先通过正则表达是来匹配关键字、注释之类的字段并替换为如<font color="red">匹配到的字段</font>这样的HTML字符串,再替换如>、<、"和&等字符为HTML实体。(这样会把先前替换到的如<font color="red">这样的HTML串中的大于号和小于号也替换掉)
2. 先替换代码串中如>、<、"和&等这样的字符为HTML实体,再通过正则表达是来匹配关键字、注释之类的字段并替换为如<font color="red">匹配到的字段</font>这样的HTML字符串。(这样正则表达式就很肯能匹配不到相应的字段了)希望各位朋友能为我提供一个详细可行的思路,,非常感谢!!!!
但考虑到要进行高亮处理的代码串中可能包含如>、<、"和&等字符,则必须把这些字符转换为如如<这样的HTML实体才能在HTML页面中正常显示。
我所考虑到的不可行思路如下:
1. 先通过正则表达是来匹配关键字、注释之类的字段并替换为如<font color="red">匹配到的字段</font>这样的HTML字符串,再替换如>、<、"和&等字符为HTML实体。(这样会把先前替换到的如<font color="red">这样的HTML串中的大于号和小于号也替换掉)
2. 先替换代码串中如>、<、"和&等这样的字符为HTML实体,再通过正则表达是来匹配关键字、注释之类的字段并替换为如<font color="red">匹配到的字段</font>这样的HTML字符串。(这样正则表达式就很肯能匹配不到相应的字段了)希望各位朋友能为我提供一个详细可行的思路,,非常感谢!!!!
{
for(int iloop =0 ;iloop < dstemp.Tables[0].Rows.Count ;iloop ++ ) {
dstemp.Tables[0].Rows[iloop]["name"] = dstemp.Tables[0].Rows[iloop]["name"].ToString().Replace(keyword.Text,"<font color=red>" + keyword.Text + "</font>");}
}