Ruby、Regex、Stackoverflowは初めてです。xDこれが私の問題です:
正規表現を使用して、ベトナム語のテキストで他の単語とは別に、標準のASCII文字を含む連続した単語で構成されるフレーズを抽出したいと思います。
別の言い方をすれば、 \ w文字のみのフレーズ。例:
MìnhrấtthíchconSharpnày(mặcdùchưaxàibaohnhưngchỉnghecácpácnóimìnhđãthấyphêlòimắtrồi)。Cácbạnchomìnhhỏi1câu(cácbạnđừngchêmìnhngunhétộinghiệpmình):cáimáynàyđemsangAnhdùngmạng NếudùngđượcbênAnhmàkhôngphảichọcngoáyjthìmìnhmuamộtcái
その意味は気にしないでください。私が達成したいのは、2つのペアの結果を含むハッシュの配列です。value =>抽出されたフレーズの値、starting_position=>最初の文字の位置。
についての例によると、次のようになります。[{:value => "con Sharp"、:starting_position => 16}、{:value => "bao h"、:starting_position => blah blah} .. .. ]
これは、「mình」、「rất」、「thích」などの\W文字を含むすべての単語が拒否されることを意味します。
Ruby 1.9.2のrubular.comでこの正規表現を使用して上記の例を試してみてください:
\ b [\ w | \ s] + \ b
ほぼ希望のフレーズ(スペースのみのフレーズを除く)を取得しましたが、Win764ビットを使用している1.9.2p290でもあるRubyでは機能しないようです。
任意のアイデアをいただければ幸いです。よろしくお願いします。