2017-08-04 5 views
1

ファイル内の文字列の出現回数を調べようとしていますが、ファイルにはUnicode文字で書かれた文がいっぱいです。preg_match_allでUnicode文字が機能しない

function probability($next,$now){ 
      $text_file = file_get_contents("temp/train_set.txt"); 
      $ans = preg_match_all("/\b$now $next\b/i", $text_file); 
      echo $ans."<br>"; 
} 

$ TEXT_FILE変数はすべての文章を検索し、うまくユニコードの文章を印刷します(私はエコーで見ました)。

$今と$ は "ভাত" 今= "আমি" と$次= 2 Unicodeのstrings.likeの$です。その後、結果はですが、私のファイルには両方の文字列があります。

しかし、私が$ nowと$ nextの2つの英文字列を置くときはいつでも。それは私に実際のカウントを提供します。この問題は、$ nowと$ nextにユニコード単語を入れるたびに発生します。私の質問は「preg_match_allがベンガルのユニコード文字をサポートする方法」のようになります。

質問がある場合は私にお尋ねください。

はあなたが

答えて

0

/uフラグ(ユニコード)を使用してくださいありがとう:

$ans = preg_match_all("/\b$now $next\b/ui", $text_file); 
//        here __^ 
+0

おかげで今のミックス・ワードと別の問題があります。英語= "START"と "END"とベンガル語のUnicode "กমি"と "খাই"のようになります。ここでは、このように "กমিখাই"または "খাইEND" - > OKを設定します。しかし、 "スタート" - > NOT OK。私が最初に英語のアルファベットを置くと、それはまったく数えられません。 –

+0

@NahidHossain:単語の境界を削除する '\ b' – Toto

関連する問題