$str = 'This is a string with alphanumeric chars @ (test-exclude)';
要查看字符串,我了解其/^[a-zA-Z0-9]+$/
但我需要检查字符串的每个单词并从选择中排除这些单词。
在上面的字符串中,我需要它来排除@
和(test-exclude)
。
编辑:当然,我可以遍历每个单词并处理,但寻找一种优雅的方式因为我已经这样做了:
array_unique(
array_filter(
explode(' ',
preg_replace("/^[a-zA-Z0-9]+$/", ' ',
implode(' ',
array_map('strtolower',
array_column( iterator_to_array($Cursor), 'description')
)
)
)
)
)
);
答案 0 :(得分:2)
explode
在空格上然后执行倒置preg_grep
:
print_r(preg_grep("/[^a-z0-9]/i", explode(' ', $str), PREG_GREP_INVERT));
输出:
Array
(
[0] => This
[1] => is
[2] => a
[3] => string
[4] => with
[5] => alphanumeric
[6] => chars
)
答案 1 :(得分:0)
您可以使用didProduce
返回多个匹配项。这些匹配可以包括在字符串的开头或结尾处以间隔或锚定方式封装的字母数字字词:
preg_match_all