PHP如何提取PDF解析结果中长度恰好为14位的字符串
提取PDF解析文本中的14位ID解决方案
问题根源
用explode(" ", $text)分割文本的方式不可靠:PDF解析出的文本可能包含多种空白字符(如制表符、换行符、不间断空格),或者目标ID与其他文本粘连,导致分割后的元素无法精准匹配14位长度。
可行方案
使用正则表达式直接匹配文本中独立的14位字符串,无需依赖空格分割:
$parser = new Parser(); $pdff = $parser->parseFile($_FILES['file']['tmp_name']); $text = $pdff->getPages()[0]->getText(); // 匹配独立的14位字母数字组合(可根据ID格式调整正则) preg_match('/\b[A-Za-z0-9]{14}\b/', $text, $matches); // 输出匹配到的第一个14位ID $resultString = $matches[0] ?? ''; echo $resultString;
补充说明
\b表示单词边界,确保匹配的是独立的14位字符串,不会与前后字符粘连;- 如果文本中可能存在多个14位字符串,可改用
preg_match_all获取所有结果; - 若目标ID有固定格式(比如示例中的
7位数字+7位字母数字),可将正则优化为更精准的版本,例如:/\b\d{7}[A-Z0-9]{7}\b/。
内容的提问来源于stack exchange,提问作者Roberts_ac
相关产品推荐
相关产品推荐

