当前位置: 代码迷 >> Java Web开发 >> 求个代码,关于多字符串查找匹配替换的,该怎么处理
  详细解决方案

求个代码,关于多字符串查找匹配替换的,该怎么处理

热度:51   发布时间:2016-04-17 14:16:11.0
求个代码,关于多字符串查找匹配替换的
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》。
------解决方案--------------------
正则表达式个人感觉好难,麻烦!


但确实是一个好东西!
  相关解决方案