拆分字符串,过滤单词

拆分字符串,获取单词,或者过滤掉某些单词,简单的我们可以用 str_replace ,如果是过滤掉某些单词或字符串我们可以用  str_word_count 函数,可以获取到拆分后的单词数组,然后再用 array_diff 或者 循环判断过滤掉不需要的字符串。

$filter = ['a', 'is', 'test'];  // 要过滤的字符串数组
$str = 'a mongo is إياهما 一个 test pipe';  // 需要过滤的字符串
$arr = str_word_count($str, 1);
print_r($arr);
echo '<br>';
$res = array_diff($arr, $filter);
print_r($res);

// 打印结果
Array ( [0] => a [1] => mongo [2] => is [3] => test [4] => pipe ) 
Array ( [1] => mongo [4] => pipe )

但是,我们发现 str_word_count 这个函数只对英文字符有用,我写的阿拉伯语并没有获取到,这时,就得换种方法,下面是我写的,如果有更好的方法,欢迎交流:

$filter = ['a', 'is', 'أَنَّ', 'test'];
$str = 'a   أَنَّ  mongo is   إياهما 一个 test pipe';
$str = str_replace(' ', '###', $str);  // 空格替换为 ###,方便拆分,也可以替换为其他字符
$str = str_replace(' ', '###', $str);  // 全角空格也替换
$arr = explode('###', $str);  // 拆分
$arr = array_filter($arr);  // 过滤元素为空的
$res = array_diff($arr, $filter);
print_r($arr);
echo '<br>';
print_r($res);

// 打印结果
Array ( [0] => a [3] => أَنَّ [5] => mongo [6] => is [9] => إياهما [10] => 一个 [11] => test [12] => pipe ) 
Array ( [5] => mongo [9] => إياهما [10] => 一个 [12] => pipe )

阿拉伯语打印有点看不懂,不过已经实现了过滤字符串的效果。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值