PHP - 使用 preg_match 进行字符串匹配问题

问题描述 投票:0回答:1

我有一个字符串,其中包含逗号分隔值的列表。

例如:

$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 以便它在带或不带尾随逗号的情况下匹配。

谢谢

php preg-match
1个回答
0
投票

假设ID后面的字符是总是小写或大写字母,你可以使用这个:

preg_match( "/$siteId([a-zA-Z]+)/", $sitelist, $matches )
© www.soinside.com 2019 - 2024. All rights reserved.