如何使用正则表达式替换 php 中所有可用的特殊字符和数字

How to replace all available special character and numbers in php using regular expression

我正在使用 AES 算法并使用所有可用的特殊字符和数字对字符串进行加密。请帮助我编写一个 ereg_replace 函数,它将从加密字符串中删除所有特殊字符和数字。

字符串示例为:

HyS7Nj+c3b3+1kaT6gLpK9kDQS3lIDtYUNQHtz/bLAw=

我使用了以下内容:

    $enc1 = preg_replace('/[0-9]/', '', $enc);
$enc2=preg_replace('/[\/\&%#$]/', '', $enc1);
$en=preg_replace('/[\"\'\|]/', '', $enc2);

每次这个字符串都会改变。所以请帮助我。我想用任何随机字符替换它。

帮我写一首单曲 preg_replace 它只会在结果字符串中给我字母表。

您可以简单地使用以下正则表达式

[^a-zA-Z]

一样使用preg_replace
$enc = "HyS7Nj+c3b3+1kaT6gLpK9kDQS3lIDtYUNQHtz/bLAw=";
echo preg_replace('/[^a-zA-Z]/', '', $enc);

解释:上面的正则表达式将捕获所有非字母的字符

Demo

你可以试试这个:

要仅删除特殊字符,请使用此选项。

$enc = "HyS7Nj+c3b3+1kaT6gLpK9kDQS3lIDtYUNQHtz/bLAw=";
echo preg_replace('/\W/', '', $enc);

要删除数字和特殊字符,请使用此选项。

$enc = "HyS7Nj+c3b3+1kaT6g$#@LpK9kDQS3lIDtYU%^NQHtz/bLAw=";
echo preg_replace('/\W|\d/', '', $enc);