如何比较输入文本中输入的两个句子,仅用于包含数字/符号/空格的字母表进行复制?
示例: 假设用户在输入文本中输入标题名称并存储在网站中,如下所示:
Hello World
另一位用户希望在网站上输入并提交标题名称,如下所示:
您好,世界
或者
Hello World,*(':?
我想要的是检查这个字符串是否重复?排除所有数字和符号?
我尝试过这个公式,但我得不到我想要的东西?
$title = preg_replace('/([^a-zA-Z0-9]+)/i', '', $title );
答案 0 :(得分:1)
尝试PHP的levenshtein功能。它将计算两个字符串之间的“距离”,即字符串变得相等所需的字符数。
$string_a = "Hello World";
$string_b = "Hello, World!";
echo levenshtein($string_a, $string_b); // 2
答案 1 :(得分:1)
要兼容unicode,请使用:
$title = preg_replace('/\P{L}+/', '', $title );
答案 2 :(得分:0)
这应该工作我尝试了。但从正则表达式删除数字,即0-9
$title = preg_replace('/([^a-zA-Z]+)/i', '', $title );
$title2 = preg_replace('/([^a-zA-Z]+)/i', '', $title );
然后您可以通过以下方式比较两个标题是否相同:
if ($title ===$title2){ ... }
答案 3 :(得分:-1)
试试这个:
$title = trim(preg_replace('/([^a-z0-9]+)/i', ' ', $title));