PHPやMYSQLでどのように類似した単語をグループ化したり分離したりできるか考えていました。私は、SAMSUNG Glaxyエースを持っているように例えば、これはS120、S120、S120、S120を認識することが可能です。PHP - 類似の単語でグループ化する
これも可能ですか?
ありがとうございました
PHPやMYSQLでどのように類似した単語をグループ化したり分離したりできるか考えていました。私は、SAMSUNG Glaxyエースを持っているように例えば、これはS120、S120、S120、S120を認識することが可能です。PHP - 類似の単語でグループ化する
これも可能ですか?
ありがとうございました
あなたができることは、英数字以外の文字とスペースをすべて削除し、strtoupper()は文字列を削除することです。
$new_string = preg_replace("/[^a-zA-Z0-9]/", "", $string);
$new_string = strtoupper($new_string);
これらはどれですか?簡単に。
/S-?120/i
しかし、拡張したい場合は、おそらくREGEXからもう少し洗練されたものに移行する必要があります。
ここで行うべき最もよいことは、フォーマットを選択して標準化することです。したがって、あなたの例では、単にS120
を保存し、ユーザーから値を取得したら、英数字以外の文字をすべて取り除いて大文字に変換します。あなたはこのコードをPHPでこれを行うことができます
:
$result = strtoupper(preg_replace('/(\W|_)+/', '', $userInput));
ありがとうございました。それはとてもうまくいった。 –
そして、あなたは複雑なアルゴリズムの熱心であれば、試してください[Damerau-Levenstein](http://en.wikipedia.org/wiki/Damerau% E2%80%93Levenshtein_distance) – J0HN
@ J0HN実際には素晴らしいアルゴリズムです。 –
と[PHP関数](http://www.php.net/manual/en/function.levenshtein.php) – Herbert