无法使用 php 正则表达式删除字符串中的空格和新行


Unable to remove white spaces and new lines in a string using php regex

>我的字符串是

$str = '             4/151n';

我的正则表达式是

preg_match_all('/[^!$|@|!|#|%|'^|&|*|(|)|_|'–|'-|+|=|''|'/|{|}|'[0-9']|.|,|'|:|;|"|''|'s+|→|<|>|'~'[''r''n''t']~]/', $str, $matches);

我的输出是

Array
(
    [0] => �
    [1] => n
)

我需要的输出是

Array
(
    [0] => n
)

让我清楚地解释我的要求。我需要从字符串中删除所有特殊字符、数字、新行、空格。上面的正则表达式适用于所有情况,除了上面的字符串。

对于上面的字符串,我在第 0 个位置得到了一些未知字符。需要删除它。

请帮帮我!

提前感谢!

我需要删除所有特殊字符、数字、新行、空格

您可以只使用:

$str = preg_replace('/'P{L}+/u', '', $str);
//=> n

在这里,'P{L}+匹配一个或多个支持 unicode 的非字母。

正则表达式演示


更新:根据OP的这一评论:

如果我在一个字符串中有多个单词,我需要将它们放在一个数组中

您可以使用:

if (preg_match_all('/'p{L}+/u', $str, $m))
    print_r($m[0]);

正则表达式演示 2