首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >提取与PHP中CAS数字模式匹配的所有字符串值

提取与PHP中CAS数字模式匹配的所有字符串值
EN

Stack Overflow用户
提问于 2017-11-14 17:49:48
回答 1查看 615关注 0票数 4

好的,所以我从上传的SDS文件中提取CAS编号(在我进入pdf之前处理docx )。我已成功地将docx转换为页面中的字符串,但如果存在,则需要提取多个字符串。下面是我使用的代码,我认为我使用的preg_match_all一点也不正确。

代码语言:javascript
运行
复制
$docObj = new DocxConversion($_FILES["sdsFile"]["tmp_name"]);
$docText = $docObj->convertToText();
preg_match_all("/[0-9]{2,7}-[0-9]{2}-[0-9]{1}/", $docText, $matches);
print_r($matches);

这给了我Array ( [0] => Array ( ) )。当我在寻找的时候,没有多大帮助:

  • 64742-47-8
  • 64742-65-0
  • 9003-29-6

$docText的输出是:

标签上使用的识别产品标识符:成品产品编号客户商品标签描述实际品牌SM5802EE ECHO POWERBLEND X扩展寿命油回声SMGR33EC 6450005回波功率混合X回波SMGR01EC 6450025回波功率混合X回波功率混合X回波混合X回波X回波混合X回波X回波SM5101EC X回波功率混合X回波SM5905EC 645050 101/99988800086回波功率混合X回波SM5905EC 6450250回波棒和链油回波SM5818ER 6450114回波功率混合X高性能二冲程发动机回波混合X SM5238EC 99988800088回波功率混合回波SM5218EC X 6972270201/99988800085回波功率混合回波X SMGR25EC X6974100202回波功率混合X SMGR25EC X6974100202回波功率混合回波X SMGR02EC 6450001回波混合回波6450102回波功率混合X低烟回波SM5818EC 6450100/6450099回波功率混合X回波SM5818EM 6450060回波功率混合X回波回波SM5906EC 6450050回波功率混合X回波功率混合X回波回波SM5818EC 6450100/6450099回波回波功率混合X回波功率混合X回波回波功率混合X回波回波功率混合X回波功率混合X回波回波功率混合X回波回波SM5818EM SMGR33EK 6450118回波回波脉冲回波X回波功率混合X回波回波功率混合X回波SM5926EC 6450006回波回波SMGR34EE回波混合X SMGR34EC 6450108回波功率混合X回波SMGR12EC 988800089回波功率混合混合X回声SM5955EC 6452750回声功率混合X回声推荐使用的化学和限制使用;石油润滑油无其他用途推荐名称、地址和化学品制造商、进口商或其他责任方的电话号码: 1.3.1。光谱润滑剂公司500工业园区驱动塞尔默,TN 38375-3276美国产品信息MSDS要求:(800) 264-6457或+17316454972技术信息:(800) 264-6457或+17316454972一般信息: vswedley@spectrumcorporation.comEMERGENCY电话号码: 1.4.1。北美应急反应: CHEMTREC (800) 424-9300在下午5:00pm CST或+17035273887健康紧急情况美国:(800) 264-6457或+17316454972危险(S)根据第1910.1200节(d)段识别该化学品的分类:急性吸入第4类眼睛刺激剂第2类皮肤刺激性腐蚀/刺激第2类易燃液体第4类信号词:警告符号:危险声明:有害的,如果吸入引起严重的眼睛刺激引起皮肤刺激,可燃液体预防声明:预防:预防:避免呼吸雾气或喷雾。仅在室外或通风良好的区域使用。戴上眼睛/面部防护手套,远离热、热表面、火花、明火和其他点火源。禁止吸烟。答:如吸入:将人带到新鲜空气中,并保持呼吸舒适。如果在眼睛里:小心地用水冲洗几分钟。取出隐形眼镜,如果有,容易做。继续冲洗。如果眼睛刺激持续存在,请提供医疗建议/注意。如果在皮肤上:用大量的水冲洗,如果有刺激或皮疹发生,请得到医疗建议/注意。脱去受污染的衣物,洗净后再使用。如果你感觉不舒服,打电话给中毒中心/医生。如遇火灾:使用水雾、泡沫、干性化学物质或二氧化碳(CO2)灭火。储存:存放于通风良好的地方.处置:根据当地/区域/国家/国际法规处置物品/容器。根据第1910.1200条第3.1.1节第(d)款被列为危害健康的所有成分的成分/信息、化学名称和浓度(确切百分比)或浓度范围。化学文摘组分编号欧盟数浓度(%)危险陈述(见第16节)馏分油(石油),加氢处理轻64742-47-8265-149-8 10-30 H226,H304,H315,溶剂脱蜡的重石蜡馏分油64742-65-0265-169-7 40-50 H315,H332 Polyiosbutylene 9003-29-6无40-70 H315,H319,H332 FIRST AID措施

还有更多但我会饶了你..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-14 18:06:44

您需要添加其他连字符:

代码语言:javascript
运行
复制
~\d{2,7}\p{Pd}\d{2}\p{Pd}\d~u

a demo on regex101.com

分解:

代码语言:javascript
运行
复制
~        # pattern delimiter
\d{2,7}  # digits, 2-7 times
\p{Pd}   # matches any kind of hyphen or dash (including unicode characters)
\d{2}    # 2 digits
\p{Pd}   # same as above
\d       # one digit
~        # pattern delimiter
u        # unicode flag (pattern modifier)

在PHP中:

代码语言:javascript
运行
复制
preg_match_all('~\d{2,7}\p{Pd}\d{2}\p{Pd}\d~u', $docText, $matches);
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47292216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档