【发布时间】:2018-10-03 16:51:21
【问题描述】:
我们正在从 PDF 文件中提取文本,结果中包含格式错误的文本的频率很高。特别是在单词的字符之间添加空格。例如SEATTLE 将作为 S E A T T L E 返回。
在n 单个字符“单词”的数量的情况下,preg_replace 是否有一个 RegEx 表达式可以删除任何空格?具体来说,从任何超过 3 个单个字母字符且以空格分隔的字符串中删除空格?
如果用谷歌搜索了一段时间,但甚至无法想象如何构造表达式。如评论中所述,我不希望删除所有空格,但仅当出现> 3个单个字母字符时,例如Welcome to the Greater S E A T T L E area 应该变成 Welcome to the Greater SEATTLE area。结果将用于全文搜索,因此不区分大小写。
【问题讨论】:
-
您应该使用
preg_replace_callback的简单方法。匹配匿名函数中的'~\b[A-Za-z](?: [A-Za-z]){2,}\b~'和str_replace空格。 -
这看起来很有希望,但正如您可能知道的那样,RegEx 对我来说是魔法。您能否在工作示例中提供该表达式作为答案?
标签: php regex preg-replace