3 回答
TA贡献1862条经验 获得超6个赞
看来字符将在开头或结尾。如果是这样,则不需要循环或正则表达式:
array_walk($feedSinglePosts["hashtags_list"], function(&$v) { $v = trim($v, "\n\r #"); });如果您需要在任何地方删除它们:
$feedSinglePosts["hashtags_list"] = str_replace(["\n","\r"," ","#"], "", $feedSinglePosts["hashtags_list"]);
TA贡献1815条经验 获得超13个赞
一个非正则表达式的方式array_walk()和trim(),
<?php
$array = ['darwin' ,' #nature',' explore', ' galapagos','karma'];
function remove_hash_space(&$value,$key){
$value = trim($value,'# ');
}
array_walk($array, 'remove_hash_space');
print_r($array);
?>
或单行array_map(),
$array = array_map(function($e){return trim($e,'# ');},$array);
TA贡献1829条经验 获得超6个赞
您可以使用
$arr = ['darwin',' #nature',' explore',' galapagos','karma'];
print_r( preg_replace('~^[\s#]+~', '', $arr) );
// => Array ( [0] => darwin [1] => nature [2] => explore [3] => galapagos [4] => karma )
查看正则表达式演示
该^[\s#]+模式匹配字符串 ( ) 开头的1 次或多次出现 ( +) 空格或#字符 ( )。[\s#]^
如果您的字符串可能包含一些奇怪的 Unicode 空格,请考虑添加u修饰符:~^[\s#]+~u。
如果您只需要处理水平空格,请替换\s为\h.
- 3 回答
- 0 关注
- 231 浏览
添加回答
举报
