从字符串输出字母字符

时间:2014-10-22 09:45:28

标签: php regex

假设我们有一个var的数据类型字符串。字符串的值包含字母字符和数字(整数)。请参阅下面的示例。

$input = 'foobar777barfoe';

我想编写一个只返回该字符串中字母字符的函数。 该函数的结果应为foobarbarfoe

我想我已经使用正则表达式来做到这一点。

我谦卑地请求帮助写这个功能。

4 个答案:

答案 0 :(得分:1)

[^a-zA-Z]

试试这个。emptry string。见。演示。

http://regex101.com/r/rQ6mK9/40

答案 1 :(得分:1)

$input = 'foobar777barfoe';
$result = preg_replace("/[^a-zA-Z]+/", "", $input);
//ouput foobarbarfoe

答案 2 :(得分:1)

你有两种方法可以做到这一点。建议的方法是使用正则表达式。 "/[^a-zA-Z]/"匹配不在a到z和A到Z范围内的所有字符。^正则表达式中的^表示排除。

$input = 'foobar777barfoe';
$result = preg_replace("/[^a-zA-Z]+/", "", $input);

$result的值为"foobarbarfoe"

这样做的另一种原始方法是循环遍历每个字符并附加所需的字符。您可以使用ASCII代码来简化它。

答案 3 :(得分:1)

对非ASCII字母感兴趣吗?

使用Unicode解决方案:

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

输出:

  

foobárfôofoeöäüß

\P{L}Unicode Category,L代表任何语言的属性“Letter”,大写P是否定,意味着匹配任何不是字母的内容。< / p>