我有一个字符串,其中包含逗号分隔值的列表。
例如:
$sitelist = 'SC001rug,SC002nw,SC003nrge';
我使用 preg_match 来检查某个站点是否在此字符串中,然后返回 ID 后面的字符。
$siteId='SC001';
if ( preg_match( "/$siteId(.+?),/", $sitelist, $matches ) ) {
var_dump( $matches );
} else {
echo "no match";
}
使用它可以正确返回结果:
array(2) { [0]=> string(9) "SC001rug," [1]=> string(3) "rug" }
但是,如果 $sitelist 不包含尾随逗号,则匹配不会正确发生。
$sitelist = 'SC001rug';
结果“不匹配”
如果我从 preg_match 命令中删除逗号,它只会返回第一个字符。
if ( preg_match( "/$siteId(.+?)/", $sitelist, $matches ) ) {
结果:
array(2) { [0]=> string(6) "SC001r" [1]=> string(1) "r" }
如何纠正 preg_match 以便它在带或不带尾随逗号的情况下匹配。
谢谢
假设ID后面的字符是总是小写或大写字母,你可以使用这个:
preg_match( "/$siteId([a-zA-Z]+)/", $sitelist, $matches )