0

私は、ローカルで動作し、記事を整理し、関数にリンクする HTML リンクを追加する Wiki プログラムを持っています (後続の記事をロードするため)。

あなたの頭を包むいくつかのコード:

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 と一致します。ただし、正規表現が次のようになる場合: /^Apple$/gim

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

この例では、パターンは Apple という単語または一列に並んでいるリンゴと一致するため、Apple Pie とは一致しません。

つまり、正規表現をより具体的にすると、誤検知の一致を減らすことができます:)

于 2012-08-29T21:56:35.240 に答える