Php-按相似单词分组

Php-按相似单词分组,php,regex,algorithm,keyword,Php,Regex,Algorithm,Keyword,我只是在想,在PHP或MYSQL中,我们怎样才能对相似的单词进行分组或分隔呢。例如,就像我有三星Glaxy Ace一样,这是否可以识别S120,S-120,S120,S-120 这可能吗 谢谢只有那些吗?很容易 /S-?120/i 但是如果您想扩展,可能需要从REGEX迁移到更复杂的东西。只有那些?很容易 /S-?120/i 但是如果你想扩展,你可能需要从正则表达式转移到更复杂的东西。你能做的就是去掉所有非字母数字字符和空格,并去掉字符串的strtoupper() $new_string =

我只是在想,在PHP或MYSQL中,我们怎样才能对相似的单词进行分组或分隔呢。例如,就像我有三星Glaxy Ace一样,这是否可以识别S120S-120S120S-120

这可能吗

谢谢

只有那些吗?很容易

/S-?120/i
但是如果您想扩展,可能需要从REGEX迁移到更复杂的东西。

只有那些?很容易

/S-?120/i

但是如果你想扩展,你可能需要从正则表达式转移到更复杂的东西。

你能做的就是去掉所有非字母数字字符和空格,并去掉字符串的strtoupper()

$new_string = preg_replace("/[^a-zA-Z0-9]/", "", $string);
$new_string = strtoupper($new_string);

您所能做的是去掉所有非字母数字字符和空格,并在字符串中加上strtoupper()

$new_string = preg_replace("/[^a-zA-Z0-9]/", "", $string);
$new_string = strtoupper($new_string);

这里最好的做法是选择一种格式并对其进行标准化。因此,对于您的示例,您只需存储
S120
,当您从用户处获得一个值时,从中删除所有非字母数字字符并将其转换为大写

您可以使用以下代码在PHP中执行此操作:

$result = strtoupper(preg_replace('/(\W|_)+/', '', $userInput));

这里最好的做法是选择一种格式并对其进行标准化。因此,对于您的示例,您只需存储
S120
,当您从用户处获得一个值时,从中删除所有非字母数字字符并将其转换为大写

您可以使用以下代码在PHP中执行此操作:

$result = strtoupper(preg_replace('/(\W|_)+/', '', $userInput));

如果你喜欢复杂的算法,试试@J0HN,它确实是一个不错的算法。如果你喜欢复杂的算法,试试@J0HN,它确实是一个不错的算法。