タイトルに記載されている問題があります。 私はregexunicode - preg_match_allを使用するとアクセント付き文字が削除されます
preg_match_all('/\pL+/u', $_POST['word'], $new_word);
を使用して、私は なぜàと私返さnew_wordがある*ハローと* こんにちはを入力した場合は?
誰かが、私はこのよう
preg_match_all('/\pL+/u', $_POST['word'], 'aäeëioöuáéíóú');
に変換したいが、私は自分のアプリケーションが(多言語ウェブサイトのための)すべての既存のアクセントと連携したいすべての文字を指定するために私に助言しました。 私を助けることができますか?おかげさまで
EDIT:私はこの正規表現を使用して句読点を浄化するように指定します。それはよくすべての句読点を浄化するが、Unicode文字は間違って返され、実際には返されない。
EDIT 2:申し訳ありませんが、私は非常にひどく説明しました。 問題はpreg_match_allではありませんが、
str_word_count($my_key, 2, 'aäáàeëéèiíìoöóòuúù');
に私は手動でアクセント付き文字を指定する必要がありましたが、私は多くの人があると思います。右?
こんにちは、あなたの答えをありがとう。 問題は、多くの言語(ヨーロッパ、アラビア語、中国語、キリル文字など)と互換性のあるアプリケーションを実現したいということです。 このように私は一般的な解決策を得ることができませんが、3番目の正規表現パラメータに指定された文字に限定されています – Tab
正確に一致させたいものは何ですか?これらの(国際的な)文字の一部を含む可能性のある文字列と一致させる場合は、最初の例で可能でなければなりません。私のテストでは、マッチの完全な結果は '$ new_word'(_helloàとì_)にあります。それとも、そのような文字が含まれていても、その単語を数えたいだけですか? – mixable
こんにちは、 問題はstr_word_count命令にあります! すべての特殊文字を指定しないと、指定されていないキャラクタは表示されません! この理由からアクセント付きの文字をいくつか指定しましたが、多言語サービスを提供することを意図しているので、他にも多くの文字が含まれていると思います。 – Tab