我正在尝试使文件名格式的正则表达式看起来像这样;需要正则表达式来从文件名读取产品SKU和其他数据
B2B_1111108A20.jpg
B2B_1111108A20_1.jpg
B2B_1111108A20_2_S.jpg
B2B_1111108A20_3_ST.jpg
,然后做一个到的preg_match分割数据,因为我需要阅读SKU产品作为文件名中包含它。在取得SKU后,我会完成其余的逻辑。
我想这正则表达式:
^B2B_.*(_([0-9]+))?(_([A-Za-z]+))?$
它确实返回匹配的文件名,但数据永远不会与的preg_match功能拆分。相反,我得到了全名。凡为我期待的结果是这样的(这取决于文件名如上所述):
$result[0] = B2B_1111108A20
$result[1] = B2B_1111108A20
$result[2] = _1
$result[3] = 1
你可以尝试测试正则表达式在一个像?:https://regex101.com/ – Nicarus
使用'preg_match_all'匹配所有字符串 – anubhava
@Nicarus我已经尝试过我的正则表达式,但不是专门在工具regex101上。 com – Capri82