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

PHP remove all occurrences of a string in a string

我有一个很大的 PDF。我将其转换为 table。由于它是一个免费程序,因此效果不佳。我的细胞看起来像这样:

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

什么时候应该看起来像这样(注意白色-space):

 -----------
|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

怎么样? P.S。重复发生的次数可能少于或多于 4 次。永远不知道。

不需要正则表达式。只需拆分 space 并在 0 索引处获取第一个元素。此外,在爆炸前使用 trim() 到 trim space。

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

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

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

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

替换只是一个空字符串。

RegEx Demo