我有一个涉及 PHP 和正则表达式的问题。
我有一些文件,需要捕获一些名称。但是有一部分不是全部。
示例文件:
D.SAE.IND.001.TME.BR.SER.20120729
D.SUI.IND.003.TMC.GER.TOT.201206
D.SAE.LIS.008.AGE.APS.SER.45D.20120713
请注意,最后一个文件有一部分(“45D”)是可选的。
我需要得到每个组。我正在使用以下正则表达式:
preg_match('/D\.(?P<font>[\w]*)\.(?P<tipo>[\w]*)\.(?P<numberLevel>[\d]*)\.(?P<indicator>[\w]*)\.(?P<nameLevel>[\w]*)\.(?P<group>[\w]*)\.(?P<id>[\d]*)/i', $arrInput , $result);
问题在于可选部分(例如最新文件-“45D”)。
我需要这个结果:
D.SAE.IND.001.TME.BR.SER.20120729
$result['fonte'] = 'SAE'
$result['tipo'] = 'IND'
$result['numberLevel'] = '001'
$result['indicator'] = 'TME'
$result['nameLevel'] = 'BR'
$result['group'] = 'SER'
$result['op'] = ''
$result[' id'] = '20120729'
D.SAE.LIS.008.AGE.APS.SER.45D.20120713
$result['fonte'] = 'SAE'
$result['tipo'] = 'LIS'
$result['numberLevel'] = '008'
$result['indicator'] = 'AGE'
$result['nameLevel'] = 'APS'
$result['group'] = 'SER'
$result['op'] = '45D'
$result['id' ] = '20120713'
提前感谢您的帮助。