Regex не отображает хорошо, используя PHP preg_quote

Привет, я пытаюсь объединить строку перед преобразованием этой строки в регулярное выражение в PHP, но проблема в том, что она не отображается должным образом. Я искал с помощью Google и узнал о preg_quote, Проблема в том, что это не работает хорошо.

Вот мой пример:

$mystring = "banana"; // put this to a variable assume this value is dynamic
$regex_str = "/^"$mystring"\-[a-z0-9]\-[a-z0-9]$/";
//Im expecting expecting /^banana\-[a-z0-9]\-[a-z0-9]$/
$regex = preg_quote($regex_str);

но то, что я получаю, это:

/\^banana\\\-\[a\-z0\-9\]\\\-\[a\-z0\-9\]\$/

и всегда возвращает неправильное значение.

3

Решение

Вызов preg_quote() в строке, которую вы добавляете перед добавлением в регулярное выражение:

$mystring = "banana";
$regex_str = "/^" . preg_quote($mystring, "/") . "\-[a-z0-9]\-[a-z0-9]$/";
4

Другие решения

Привет, я пытаюсь объединить строку перед преобразованием этой строки в регулярное выражение в PHP, но проблема в том, что она не отображается должным образом. Я искал с помощью Google и узнал о preg_quote, Проблема в том, что это не работает хорошо.

Вот мой пример:

$mystring = "banana"; // put this to a variable assume this value is dynamic
$regex_str = "/^"$mystring"\-[a-z0-9]\-[a-z0-9]$/";
//Im expecting expecting /^banana\-[a-z0-9]\-[a-z0-9]$/
$regex = preg_quote($regex_str);

но то, что я получаю, это:

/\^banana\\\-\[a\-z0\-9\]\\\-\[a\-z0\-9\]\$/

и всегда возвращает неправильное значение.

3

Вызов preg_quote() в строке, которую вы добавляете перед добавлением в регулярное выражение:

$mystring = "banana";
$regex_str = "/^" . preg_quote($mystring, "/") . "\-[a-z0-9]\-[a-z0-9]$/";

active «data-shortcut =» A
самый старый «data-shortcut =» O
голосует «data-shortcut =» V
4
По вопросам рекламы [email protected]