我以前曾问过此问题,但无法找到答案/答案。
我有这样的标签..
news,门户,æ–°é—»,portal,网易,163,china,门户ç
我需要从上面仅提取news,portal,163,china
。我怎么能在PHP中做到?
答案 0 :(得分:2)
替换任何不是字母或逗号的内容:
$sString = preg_replace('/[^a-z0-9,]+/i', '', $sString);
$sString = preg_replace('/,{2,}/', ',', $sString);
答案 1 :(得分:2)
假设您只想保留此字符串的ascii字母数字部分,以下代码将起作用:
$str = explode(',', $str);
$str = preg_grep('#^[[:alnum:]]+$#', $str);
$str = implode(',', $str);
这也是:
$str = preg_replace('#(^([^[:alnum:],]+,)+|,[^[:alnum:],]+)#', '', $str);
两者都返回news,portal,163,china
答案 2 :(得分:0)
echo str_replace(',,', ',', preg_replace('~[^a-zA-Z0-9,]~i', '', $searchString));
答案 3 :(得分:0)
s/([[:alnum:]\ ]+,?|) .*? ([[:alnum:]\ ]+,?|) /$1$2/xsg
或
s/[\x{80}-\x{1fffff}]+,?//g