我们正在从PDF文件中提取文本,但是结果中存在大量包含格式不正确的文本。具体来说,单词字符之间添加了空格,例如
是否有一个正则表达式可以通过preg_replace移除任何单个字符“单词”数量的空格?特别是,从任何由空格分隔的超过3个单个字母字符组成的字符串的任何出现中删除空格?
我已经在Google上搜索了一段时间,但是无法想象如何构建这个表达式。正如在评论中所述,我不想删除所有空格,而是只有当存在超过3个单个字母字符的情况时才删除空格,例如
SEATTLE
被返回为S E A T T L E
。是否有一个正则表达式可以通过preg_replace移除任何单个字符“单词”数量的空格?特别是,从任何由空格分隔的超过3个单个字母字符组成的字符串的任何出现中删除空格?
我已经在Google上搜索了一段时间,但是无法想象如何构建这个表达式。正如在评论中所述,我不想删除所有空格,而是只有当存在超过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
替换空格。 - Wiktor Stribiżew