求个代码,关于多字符串查找匹配替换的
String articleContent = "This is Test! <br> Welcome to http://www.212137.com! <br> 中国 江苏 镇江 丹徒 高桥 ! <br> 这是乡土高桥,站长王乐欢迎您! <br> 作为中国 江苏 镇江 丹徒 高桥的唯一门户网站,我们倡导文明健康的上网方式! ";//文章内容
String keyArr= new String[]( '镇江 ', '丹徒 ', '乡土高桥 ', '高桥 ', '南北大河 ', '江苏 ');//关键字列表
关键字搜索页超链接格式如同: http://www.212137.com?key=镇江
依次类推:http://www.212137.com?key=丹徒
http://www.212137.com?key=乡土高桥
等
任务目标:就是要将articleContent 的 关键字 换成 关键字的搜索页url的格式
我已经用php+javascript写了个http://www.212137.com/key2url.php
但效率很不够,求个效率高的,最好只扫描一次。
(实现语言:java,c#,php,javascript都可以)
给个代码,要注意效率,要注意潜在的问题(如当一个关键字中包含另外一个关键字时,如 '乡土高桥 ', '高桥 ')。
------解决方案--------------------大哥,学习下语文把。。。
“就是要将articleContent 的 关键字 换成 关键字的搜索页url的格式”
articleContent 的关键字是甚么? 搜索页url的格式 又是甚么?
我都第一次听说。。。
------解决方案--------------------动态生成一个正则表达式来替换就可以了
------解决方案--------------------var contentStr = contentInit();
var keyArr = keyArrInit();
var keyReg = " ";
var temp = "( ";
for (var i in keyArr)
{
temp += keyArr[i];
if (i < keyArr.length - 1)
temp += "| ";
else
temp += ") ";
}
keyReg = new RegExp(temp, "g ");
contentStr=contentStr.replace(keyReg, " <A href=http://www.212137.com?key=$1> $1 </A> ");
document.getElementById( "content ").innerHTML = contentStr;
------解决方案--------------------强
------解决方案--------------------正则表达式解决最方便
------解决方案--------------------正则表达式的权威著作:《Mastering Regular Expressions》。
------解决方案--------------------正则表达式个人感觉好难,麻烦!
但确实是一个好东西!