Ваше регулярное выражение фактически нарушено.
/^(\see details)/
Это разбивается на:
- В начале
- Открыть группу захвата
- Ищите один символ пробела
- Затем следуют все следующие символы:
ee details
- Закрыть группу
\s
- это escape-последовательность , соответствующая пробелу.Вы также можете добавить модификатор i
, чтобы сделать регулярное выражение нечувствительным к регистру.Вы также, похоже, ничего не делаете с захваченной группой, так что вы можете отказаться от этого.
Поэтому:
/^see details/i
- это то, что вам нужно.
Вы упомянули, что вы проходите ввод за строкой.Если вам нужно только знать, что весь ввод содержит определенную строку, и у вас есть ввод в виде строки, вы можете использовать модификатор m
, чтобы ^
соответствовало «началу строки» вместо / в дополнение к«начало строки»:
/^see details/im
Если это так, то в итоге вы получите:
if(preg_match('/^see details/im', $whole_input)) {
echo "See Details Found!";
}
Но, как уже упоминали другие, регулярное выражение не требуетсяВот.Вы можете (и должны) выполнять эту работу с помощью более простых stripos
.