如何检查字符串是否包含“ x”而不是“ xy”

时间:2018-11-20 08:09:41

标签: php string contains

如何检查字符串是否包含“ x”而不包含“ xy”?

所以我有这样的字符串:

"5103564-XY",
"77-546-00X",
"292196232",
"5102200X",
"5102205",
"5102251-EP".
...

我只需要在末尾带有字母“ x”的数字。有人可以帮助我在PHP中实现这一点吗?

所以,如果我尝试这样做:

$strings = array("5103564-AD", "77-546-00D", "292196232", "5102200D", "5102205", "5102251-EP");
print_r(preg_grep('/d$/i', $strings));

所以输出是这样的:

Array
(
    [0] => 5103564-AD
    [1] => 77-546-00D
    [3] => 5102200D
)

但这不是期望的结果。我只需要只包含字母“ D”的字符串,而不需要只包含“ AD”或其他东西的字符串。我希望现在可以清楚一点,我需要什么/我的。

1 个答案:

答案 0 :(得分:1)

使用preg_grep在列表中仅找到以dD结尾的值(不带前字母):

$strings = array("5103564-AD", "77-546-00D", "292196232", "5102200D", "5102205", "5102251-EP");
print_r(preg_grep('/[^a-z]d$/i', $strings));

输出:

Array ( 
    [1] => 77-546-00D
    [3] => 5102200D
)

Demo on 3v4l.org