我正在尝试找到解决此问题的方法。我有一个像“&M26&M35.45#&TN#&C150,250,10# f54f#”这样的字符串,我想将它转换为一个数组,其中包含'&'和'#'之间的所有匹配项。所以在我的情况下,我想拥有
0: M35.45
1: TN
2: C150,250,10
我试图用正则表达式来做到这一点
$haystack = "&M26&M35.45#&TN#&C150,250,10# f54f#";
if (preg_match_all("/(?<=&).*?(?=#)/s", $haystack, $result))
print_r($result[0]);
但这样我得到:
0: M26&M35.45
1: TN
2: C150,250,10
如果您看到,第一个匹配项包含一些我不需要的字符。所以我试图在我的分隔符之间获得最短的匹配,但我不知道如何。谢谢!