Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从字符串输出字母字符_Php_Regex - Fatal编程技术网

Php 从字符串输出字母字符

Php 从字符串输出字母字符,php,regex,Php,Regex,假设我们有一个数据类型字符串的变量。字符串的值既包含字母字符,也包含一个数字和一个整数。请参见下面的示例 $input = 'foobar777barfoe'; 我想写一个函数,只返回该字符串中的字母字符。 函数的结果应该是foobarbfore 我想我必须使用正则表达式来实现这一点 我谦恭地请求帮助编写此函数 [^a-zA-Z] 尝试此操作。替换为空字符串。请参阅演示 你有两种方法。推荐的方法是使用正则表达式。 /[^a-zA-Z]/匹配不在a到Z和a到Z范围内的所有字符。^在正则表达式中

假设我们有一个数据类型字符串的变量。字符串的值既包含字母字符,也包含一个数字和一个整数。请参见下面的示例

$input = 'foobar777barfoe';
我想写一个函数,只返回该字符串中的字母字符。 函数的结果应该是foobarbfore

我想我必须使用正则表达式来实现这一点

我谦恭地请求帮助编写此函数

[^a-zA-Z]
尝试此操作。替换为空字符串。请参阅演示


你有两种方法。推荐的方法是使用正则表达式。 /[^a-zA-Z]/匹配不在a到Z和a到Z范围内的所有字符。^在正则表达式中表示排除

$input = 'foobar777barfoe';
$result = preg_replace("/[^a-zA-Z]+/", "", $input);
$result将有一个值foobarbFore


执行此操作的另一种基本方法是循环遍历每个字符并附加所需的字符。您可以使用ASCII代码来简化它

对非ASCII字母感兴趣吗

使用Unicode解决方案:

$input = "foobár777fôofoeöäüß";
$result = preg_replace("/\P{L}+/u", "", $input);
输出:

foobárfôofoeöäüß

\p{L}是a,L表示任何语言中的属性字母,大写的p表示否定,表示匹配任何非字母的内容。

$input=str_replacerange0,9,$input;
$input = "foobár777fôofoeöäüß";
$result = preg_replace("/\P{L}+/u", "", $input);