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

How I can check if a string contais “x” but not “xy”

本问题已经有最佳答案,请猛点这里访问。

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

所以我有这样的字符串:

1
2
3
4
5
6
7
"5103564-XY",
"77-546-00X",
"292196232",
"5102200X",
"5102205",
"5102251-EP".
...

我只需要结尾有字母"X"的数字。有人能帮助我在PHP中认识到这一点吗?

所以如果我尝试这个:

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

所以输出是这样的:

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

但这不是期望的结果。我只需要字符串,它只包含字母"d",而不需要字符串,它也包含"ad"或其他一些东西。我希望现在能更清楚一点,我需要什么。


使用preg_grep仅查找列表中以dd结尾的值(不带前导字母):

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

输出:

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

3v4l.org上的演示