4

日本語の文字列 (例: "私はマーケットに行きました。") の単語境界を JavaScript 正規表現 ("xregexp" JS ライブラリ キャブを使用) で見つけるソリューションはありますか?

例えば:

var xr = RegExp("\\bst","g");
xr.test("The string") // --> true

日本語の文字列にも同じロジックが必要です。

4

2 に答える 2

6

ただし、日本語の文を単語に分割する実際の問題は、見た目よりも複雑です。これは、たとえば英語の場合のように、単語がスペースで区切られていないためです。

たとえば、「私はマーケットに行きました」という文には、次の単語があります。

  • 私 - ワタクシ
  • は - わ
  • マーケット - マーケット
  • に - に
  • 行きました - いきました
  • 。 - (限目)

日本語の文章の信頼できるパーサーは、残りの単語を見つけるために、助詞​​ (はとに) が文のどこにあるかを見つける必要があります。

于 2011-10-28T11:19:03.540 に答える
4

\b\wおよび\Wは、JavaScript では Unicode 対応ではありません。単語の境界を特定の文字セットとして定義する必要があります。のように(^|$|[\s.,:\u3002]+)、または類似しています。

\u3002から('。'.charCodeAt(0)).toString(16)です。日本語の句読点ですか?

または、反対に、単語構成文字の Unicode 範囲を定義し、それを否定します。

var boundaries = /(^|$|\s+|[^\u30A0–\u30FA]+)/g;

http://www.unicode.org/charts/PDF/U30A0.pdfから取得したカタカナ範囲の例。

于 2011-10-28T10:08:47.650 に答える