我有一个本地工作的Wiki程序,可以组织文章并添加链接到函数的HTML链接(以加载后续文章)。
一些代码可以解决问题:
for each (var keyword:String in thisArticleArray) {
var pattern:RegExp = new RegExp(keyword,'/gi');
contents = contents.replace(pattern,"<a href=\"event:" + "$&" + "\"><b>" + keyword + "</b></a>");
}
无论如何,这个想法是这些链接链接到新文章。那不是那么糟糕。但现在,我的文章名称包含其他文章名称。例如“Apple”和“Apple Pie”。我如何区分这些?现在它只是在碰到那个区域时搞砸了......
有什么想法吗?
答案 0 :(得分:1)
好吧,我只需按字符串长度对thisArticleArray
进行反向排序。这样,代码将始终尝试匹配较短匹配之前的较长匹配。
答案 1 :(得分:0)
您是否尝试过编写正则表达式?如果将/ Apple / gi设置为RegEx
new RegExp(keyword,'gi')
然后它会在任何地方匹配Apple。但是,如果你的RegEx看起来像这样:/ ^ Apple $ / gim
new RegExp("^"+keyword+"$","gim")
在这个示例中,模式将匹配单独坐在一行中的单词Apple或apple,因此它与Apple Pie不匹配。
换句话说,如果您将使您的正则表达更具体,您将能够减少误报匹配:)