0

我有一个在本地工作的 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”。我将如何区分这些?现在它只是在它击中那个区域时搞砸了......

有任何想法吗?

4

2 回答 2

1

thisArticleArray好吧,我会简单地按字符串长度进行反向排序。这样,代码将始终尝试在较短的匹配之前匹配较长的匹配。

于 2012-08-29T21:04:58.137 回答
0

您是否尝试过实际编写正则表达式?如果您将 /Apple/gi 设置为 RegEx

new RegExp(keyword,'gi')

那么它将在任何地方匹配Apple。但是,如果您的 RegEx 看起来像这样:/^Apple$/gim

new RegExp("^"+keyword+"$","gim")

在此示例中,该模式将匹配单词 Apple 或单独坐在一行中的苹果,因此它不会匹配 Apple Pie。

换句话说,如果您使正则表达式更具体,您将能够减少误报匹配:)

于 2012-08-29T21:56:35.240 回答