Я хотел бы записать номер комнаты из строки, а условие (начинать с # и заканчивать пробелом или запятой).preg_match дает разные результаты, чем соответствие строки perl
Мой PHP код:
preg_match('/(#.*?)[ ,]/',
'112 east coast road #b1-15, 112 katong, singapore 428802', $match);
if($match) {
echo "match=".$match[0];
}
else {
echo 'not match';
}
Выход: <code>match=#b1-15,</code>
Как вы можете видеть, запятая в плен.
Хотя я использую тот же шаблон в perl use strict;
my $str = "112 east coast road #b1-15, 112 katong, singapore 428802";
if($str =~ /(#.*?)[ ,]/) {
print "match = $1";
}
else {
print "not match";
}
Выход: <code>match = #b1-15</code>
Может кто-нибудь сказать мне, почему и как исправить мой PHP соответствия шаблону?