3

VB .NET を使用して文字列入力でデータベースから駆動された単語を一致させようとしています。私が使用している構文はとても単純です。

Regex.Matches(ArticleBody, "\b" & TagLabel & "\b", RegexOptions.IgnoreCase)

「TagLabel」はデータベースの変数で、「ArticleBody」はユーザー入力です。すべて正常に動作していますが、少し問題があります。

次のように仮定します。

TagLabel = "مصر"
ArticleBody = "لكن الجنرال المدني مصرٌ على الأمل، ولو كان حزيران يشي بالعكس."

ArticleBody の「ٌ」の 4 番目の単語の末尾にある「مصر」の「Tanwin」に注意してください。正規表現関数は単語「مصر」に一致しますが、一致するはずはありません。すでに解決策を検索しましたが、見つかりませんでした。

お知らせ下さい。

4

1 に答える 1

2

試してみてください:

Regex.Matches(ArticleBody, "\b" & TagLabel & "\b", 
  RegexOptions.IgnoreCase | RegexOptions.RightToLeft)

更新:これを試してください:

Regex.Matches(ArticleBody, "(?<=(?:\s|^))" & TagLabel & "(?=(?:\s|$))", 
  RegexOptions.IgnoreCase | RegexOptions.RightToLeft)
于 2012-06-26T12:20:07.743 に答える