我不知道为什么除了使用此正则表达式的输入之外还有 2 个匹配项,而我预计只有 1 个匹配项。
preg_match(/_(\d(-\d){0,3})\./,$str,$matches);
关于这个文件的字符串格式name_A-B-C-D.ext
。
我希望得到这样的单场比赛:
Example A
[0] => name_A-B-C-D.ext
[1] => A-B-C-D
Example B
[0] => name_A-B-C.ext
[1] => A-B-C
但这是我得到的结果:
Example A
[0] => name_A-B-C-D.ext
[1] => A-B-C-D
[2] => -D
Example B
[0] => name_A-B-C.ext
[1] => A-B-C
[2] => -C
我只希望捕获A
它D
是否以连字符开头。这段代码是可用的,我可以简单地忽略第二场比赛,但我想知道它为什么在那里。我只能假设它与我的两个捕获组有关。我的错误在哪里?