实现步骤:1、利用preg_match_all()函数配合正则表达式来过滤字符串,只保留英文字母,语法“preg_match_all("/[a-zA-Z]/u","$str",$arr);”,字母会存入“$arr”数组中;2、使用implode()函数将结果值拼接成一个新字符串即可,语法“implode($arr[0])”。

本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑

在php中,可以利用preg_match_all()函数和implode()函数来让字符串中只有字母。

实现步骤:

步骤1:利用preg_match_all()函数配合正则表达式来过滤字符串,只保留英文字母

preg_match_all()函数匹配字符串中所有出现的模式。

preg_match_all (pattern , subject ,matches,flags,offset);
  • pattern::要搜索的模式,字符串形式。

  • subject:输入字符串。

  • matches:多维数组,作为输出参数输出所有匹配结果, 数组排序通过flags指定。

  • flags:数组结果排序,可以结合下面的几个标记使用

  • offset: 通常, 查找时从目标字符串的开始位置开始。(单位为字节)

<?php
header("Content-type:text/html;charset=utf-8");
$str = "php.cn23v457zblog,?#$%^&())*(&^";
echo "原字符串:";
var_dump($str);
preg_match_all("/[a-zA-Z]/u","$str",$arr);
var_dump($arr);
?>

1.png

可以看出,结果是一个二维数组。

所需要的英文字母在内部的子数组$arr[0]中,将其转为字符串即可。

步骤2:使用implode()函数将结果值拼接成一个字符串

implode() 函数可以将一个一维数组转化为字符串。语法如下:

implode($glue,$arr)
参数描述
$glue可选。用来设置一个字符串,表示使用 $glue 将数组每个元素连接在一起,默认情况下 $glue 为空字符串。
$arr必需。要组合为字符串的数组。

implode() 函数会返回一个由数组元素和“$glue”字符组合成的字符串。

<?php
header("Content-type:text/html;charset=utf-8");
$str = "php.cn23v457zblog,?#$%^&())*(&^";
echo "原字符串:";
var_dump($str);
preg_match_all("/[a-zA-Z]/u","$str",$arr);
var_dump($arr);
$newStr=implode($arr[0]);
echo "处理后的字符串:";
var_dump($newStr);
?>

2.png


php字符串怎么只保留字母