【问题标题】:PHP remove all occurrences of a string in a stringPHP删除字符串中所有出现的字符串
【发布时间】:2015-01-24 09:29:20
【问题描述】:

我有一个很大的 PDF。我把它变成了一张桌子。因为它是一个免费程序,所以它做得很差。我的细胞看起来像这样:

 ---------------------------------------
| bb.M2.u4.F5  bb.M2.u4.F5  bb.M2.u4.F5 |
 ---------------------------------------

当它应该看起来像这样时(注意空格):

 -----------
|bb.M2.u4.F5|
 -----------

我想将文件的全部内容上传到我的数据库。但是在我上传之前,我必须清除每个字符串中重复出现的字符串的数据

我如何做到这一点?

$my_string = " bb.M2.u4.F5  bb.M2.u4.F5  bb.M2.u4.F5 ";

$my_string = WhatFunctionCanIUseAndHow($my_string) // Would echo this: bb.M2.u4.F5

怎么样? 附:再次发生可能少于或多于 4 次。永远不知道。

【问题讨论】:

标签: php regex string cell


【解决方案1】:

不需要正则表达式。只需在空间上拆分并在 0 索引处获取第一个元素。另外,在爆炸前使用trim() 修剪空格。

$my_arr = explode(" ", trim($my_string));
echo $my_arr[0]; // bb.M2.u4.F5

【讨论】:

  • @adeneo 好的。我明白你的意思了。你不能只是链接数组。我已经对其进行了编辑以使其更正确。 /ot 你在 Windows 8+ 上并且安装了小黄人游戏吗?
【解决方案2】:

您可以使用这个基于前瞻的正则表达式:

$my_string = ' bb.M2.u4.F5  bb.M2.u4.F5  bb.M2.u4.F5 ';
$my_string = preg_replace('/ *(\b\w+\b)\.? *(?=.*\b\1\b)/', '', $my_string);
//=> bb.M2.u4.F5 

此正则表达式使用(\b\w+\b) 捕获一组单词字符,然后使用前瞻(?=.*\b\1\b) 确保字符串中存在相同的单词。

替换只是一个空字符串。

RegEx Demo

【讨论】:

    猜你喜欢
    • 2014-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-06
    • 1970-01-01
    • 2013-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多