我有 PCRE 模式:
$pattern = '/(.*)(\[(heading)\](.*)\[\/\3\])(.*)/Us'
和这段文字
$text ='来自 Millipore Milli-Q 系统(Billerica,MA,USA)的蒸馏水。
HPLC 级甲醇和乙腈购自 JT Baker Phillipsburg, NJ, USA)。
[标题]HEading 测试[/标题]
3-氨基荧蒽购自 Aldrich(密尔沃基,威斯康星州,美国)。
1-氨基芘
1-棕榈酰-甘油-3-磷酸胆碱
咖啡因
胞嘧啶
甲酸(LC/MS 级)
萘啶酸
茶碱
HPLC 级亮氨酸脑啡肽,购自 Fluka(密尔沃基,威斯康星州,美国)
阿米替林盐酸盐
β-Asp-Leu
异亮氨酸
γ- Glu-Leu
马尿酸
亮氨酸
1-油酰-甘油-3-磷酸胆碱
苯丙氨酸
1-硬脂酰-甘油-磷酸胆碱
色氨酸和酪氨酸购自 Sigma (St. Louis, MO, USA)。
'
当我运行时:
preg_match_all($pattern,$text,$matches,PREG_OFFSET_CAPTURE)
它没有捕获最后一个子模式,最后的“(。*)”,我不明白为什么不。有什么解释吗?
(也就是说,它从 Millipore Milli-Q 系统(Billerica,MA,USA)中捕获蒸馏水。HPLC 级甲醇和乙腈购自 JT Baker Phillipsburg,NJ,USA)。[标题]标题测试[/标题]'
但不是字符串的最后一部分:
' 3-氨基荧蒽购自 Aldrich (Milwaukee, WI, USA)。1-氨基芘 1-棕榈酰-甘油-3-磷酸胆碱 咖啡因 胞嘧啶甲酸(LC/MS 级)萘啶酸 茶碱 HPLC 级亮氨酸脑啡肽,购自 Fluka(密尔沃基,威斯康星州,美国) 阿米替林盐酸盐 β-Asp-Leu 异亮氨酸 γ- Glu-Leu 马尿酸 亮氨酸 1-油酰-甘油-3-磷酸胆碱 苯丙氨酸 1-硬脂酰-甘油-磷酸胆碱 色氨酸和酪氨酸购自 Sigma (St. Louis, MO, USA)。
我想要的)