我有一个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”。我该如何区分它们呢?现在当它击中那个区域的时候就会出问题。
有什么想法吗?
发布于 2012-08-30 05:04:58
嗯,我只是简单地按字符串长度对thisArticleArray进行反向排序。这样,代码将始终尝试先匹配较长的匹配项,然后再匹配较短的匹配项。
发布于 2012-08-30 05:56:35
你有没有尝试过写正则表达式?如果将/Apple/gi设置为RegEx
new RegExp(keyword,'gi')那么它将在任何地方都能与苹果匹敌。但是如果你的RegEx看起来像这样,例如: /^Apple$/gim
new RegExp("^"+keyword+"$","gim")在此示例中,模式将匹配word、Apple或单独坐在一行中的apple,因此它不会与Apple Pie匹配。
换句话说,如果您将使您的正则表达式更具体,您将能够减少误报匹配:)
https://stackoverflow.com/questions/12185486
复制相似问题