私の問題は、小さな検索エンジンをゼロから作成していることですが、ロシア語や英語以外の言語で検索するとめちゃくちゃになってしまいます。ロシア語の文字、または英語以外の文字、およびキーボードの特殊文字 (-/:;()$& @". - etc. 後で、自分のエンジンに別の言語サポートを実装しますが、とりあえず、エンジンのベースを完成させたいと思います。
前もって感謝します。
なぜ複雑にするのですか?正規表現は文字列の内容を読み取るため、自分で行うことをお勧めします。文字列の文字を読み取り、対応する ASCII 値を確認します。
SplStorageObjectを使用してハッシュセットのような構造を作成し、文字が目的のセットに含まれるかどうかを手動で確認します。読みたい文字をこのセットに追加できます。
編集 - 正規表現も使用したい場合があります - [a-zA-Z0-9,./+&-] のようなものですが、セットを使用すると、既知の文字セットに文字を追加することで検索エンジンを徐々に拡張できます.
これは最も効果的な方法ではないかもしれませんが、うまくいきます:)
$str='"it is a simple test \ + - é Ó ½ 213 /:;()$&@".~" ';
$result= preg_replace('/[^\s\w\+\-\\":;@\(\)\$\&\.\/]*/', '', $str);
echo $result;
ただし、すべての特殊文字を追加する必要があります。