PHP删除字符串中出现的所有字符串

时间:2015-01-24 09:29:20

标签: php regex string cell

我有一张大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次。永远都不知道。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

$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