Версия без регулярных выражений состоит в том, чтобы разбить предложение на do you
и в пробеле и посмотреть, что за словом стоит после do you
, а затем убедиться, что это строка длиной более трех символов и не "ложь".
$text = "John do you know a lie";
$after = explode(" ", explode("do you ", $text)[1])[0];
echo $after;
if(strlen($after) >=3 && is_string($after) && strtolower($after) != "lie"){
echo "true";
}else{
echo "false";
}
https://3v4l.org/tJ754
Если строка не всегда содержит do you
, вам нужно проверить массив после первого разнесения, если у него есть второй элемент.
В противном случае он вернетсяуведомление, неопределенное [1].
$text = "John do know a lie";
$temp = explode("do you ", $text);
if(isset($temp[1])){
$after = explode(" ", $temp[1])[0];
}else{
$after = null;
}
echo $after;
if(strlen($after) >=3 && is_string($after) && strtolower($after) != "lie"){
echo "true";
}else{
echo "false";
}