假设我们有一个var的数据类型字符串。字符串的值包含字母字符和数字(整数)。请参阅下面的示例。
$input = 'foobar777barfoe';
我想编写一个只返回该字符串中字母字符的函数。
该函数的结果应为foobarbarfoe
。
我想我已经使用正则表达式来做到这一点。
我谦卑地请求帮助写这个功能。
答案 0 :(得分:1)
答案 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>