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

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

如何检查字符串是否包含 "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" 或其他内容。我希望现在更清楚了,我 need/mine.

使用 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