分隔符字符之间的php正则表达式
我正试图找到解决这个问题的办法。 我有这样一个字符串“&M26&M35.45&TN&C150250,10&f54f” 我想把它转换成一个数组,它包含了在&和#之间的所有匹配项。所以在我的场景中,我希望分隔符字符之间的php正则表达式,php,regex,delimiter,shortest,Php,Regex,Delimiter,Shortest,我正试图找到解决这个问题的办法。 我有这样一个字符串“&M26&M35.45&TN&C150250,10&f54f” 我想把它转换成一个数组,它包含了在&和#之间的所有匹配项。所以在我的场景中,我希望 0: M35.45 1: TN 2: C150,250,10 我试着用正则表达式来做 $haystack = "&M26&M35.45#&TN#&C150,250,10# f54f#"; if (preg_match_all("/(?<=&).*?(
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]);
如果您看到,第一个匹配包含一些我不需要的字符。
所以我试图在我的分隔符之间找到最短的匹配,但我不知道怎么做。谢谢大家! 当你说“我不需要这个角色”时,你应该从你的选择中排除这个角色。也就是说,[^&]
。生成的正则表达式如下所示:
/(?<=&)[^&]*?(?=#)/s
/(?<=&)[^&]*?(?=#)/s
Array
(
[0] => M35.45
[1] => TN
[2] => C150,250,10
)