Если вы хотите сопоставить строку с любым вариантом 'mystring', это подойдет: /^.*mystring.*$/m
Если вы строго хотите сопоставить «mystring», вам потребуется границы слова : /^.*\bmystring\b.*$/m
Шаблон объяснил:
^
начало соответствия начала данных или символа новой строки
.*
соответствует нулю или более символов, которые не являются новой строкой
\b
соответствует границе слова
mystring
соответствует строке: mystring
\b
соответствует границе слова
.*
соответствует нулю или более символов, которые не являются новой строкой
$
соответствует концу данных или символу новой строки (EOL)
Флаг 'm' заставляет ^ и $ соответствовать новым строкам в данных.
Пример сценария:
<code><?php
$string = <<<EOT
mystring0
mystring er as
mystring2 //spaces before and after string
EOT;
// match mystring and mystring2 for example
preg_match('/^.*mystring.*$/m', $string, $match);
echo "MATCH: <pre>" . $match[0] . "
\ n "; // печатает 'mystring0'
// сопоставим только mystring и mot mystring2, например
preg_match ('/^.* \ bmystring \ b. * $ / m', $ string, $ match);
echo "MATCH:
" . $match[0] . "
\ n"; // выводит 'mystring er as'
?>
b.t.w. Предварительные теги - это то, что пробелы не будут обрезаться при выводе HTML, просто из комментария о пробеле, который, как я думал, может быть, была вашей проблемой.