日本語の文字列 (例: "私はマーケットに行きました。") の単語境界を JavaScript 正規表現 ("xregexp" JS ライブラリ キャブを使用) で見つけるソリューションはありますか?
例えば:
var xr = RegExp("\\bst","g");
xr.test("The string") // --> true
日本語の文字列にも同じロジックが必要です。
日本語の文字列 (例: "私はマーケットに行きました。") の単語境界を JavaScript 正規表現 ("xregexp" JS ライブラリ キャブを使用) で見つけるソリューションはありますか?
例えば:
var xr = RegExp("\\bst","g");
xr.test("The string") // --> true
日本語の文字列にも同じロジックが必要です。
ただし、日本語の文を単語に分割する実際の問題は、見た目よりも複雑です。これは、たとえば英語の場合のように、単語がスペースで区切られていないためです。
たとえば、「私はマーケットに行きました」という文には、次の単語があります。
日本語の文章の信頼できるパーサーは、残りの単語を見つけるために、助詞 (はとに) が文のどこにあるかを見つける必要があります。
\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から取得したカタカナ範囲の例。