Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 删除字符串中的随机空格_Php_Regex_Preg Match_Data Cleaning - Fatal编程技术网

Php 删除字符串中的随机空格

Php 删除字符串中的随机空格,php,regex,preg-match,data-cleaning,Php,Regex,Preg Match,Data Cleaning,在我的文件上使用pdftotext后,有一个字段在字符之间有空格;具有人名值的字段 大多数记录都很好,而且似乎通常姓氏都有这个问题;尽管名称的格式不同。出现此问题时,通常使用大写字母 清除这些名称的最佳preg_match或regex解决方案是什么?它可能被一个字母隔开是可以接受的(例如,如果中间的首字母被附加到姓氏后面;甚至可以通过编程防止这种情况发生吗?) 返回值的示例: R U S S E L L , Robert T Samuel D E N N I E S Timmy O ' B R

在我的文件上使用pdftotext后,有一个字段在字符之间有空格;具有人名值的字段

大多数记录都很好,而且似乎通常姓氏都有这个问题;尽管名称的格式不同。出现此问题时,通常使用大写字母

清除这些名称的最佳preg_match或regex解决方案是什么?它可能被一个字母隔开是可以接受的(例如,如果中间的首字母被附加到姓氏后面;甚至可以通过编程防止这种情况发生吗?)

返回值的示例:

R U S S E L L , Robert T Samuel D E N N I E S Timmy O ' B R I E N R U S E L,罗伯特T 塞缪尔·德恩尼斯 蒂米·奥伯里恩
对于大写字母后跟空格或行尾,请查找以下内容:

([A-Z])( |$)
…并替换为:

$1
……应产生:

RUSSELL, Robert T
Samuel DENNIES
Timmy O' BRIEN

我不确定,但你可以试试这个:

$str = preg_replace("~[A-Z']\K ~", '', $str);

姓氏后跟逗号时,只有中间的首字母吗?到目前为止,这是正确的。我没有广泛的记录,所以在某个时候它可能包括一个完整的中间名。不幸的是,这是我从少数几个文件中得到的唯一信息