如何使用preg_replace仅检查Alphabet?

时间:2014-04-17 09:08:48

标签: php regex preg-replace

如何比较输入文本中输入的两个句子,仅用于包含数字/符号/空格的字母表进行复制?

示例: 假设用户在输入文本中输入标题名称并存储在网站中,如下所示:

  

Hello World

另一位用户希望在网站上输入并提交标题名称,如下所示:

  

您好,世界

或者

  

Hello World,*(':?

我想要的是检查这个字符串是否重复?排除所有数字和符号?

我尝试过这个公式,但我得不到我想要的东西?

$title = preg_replace('/([^a-zA-Z0-9]+)/i', '', $title );

4 个答案:

答案 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));