Добавить переменную в preg_replace

0

Я хочу добавить переменную в preg_replace.

для Ex: -

В этой строке кода, я хочу добавить $ text вместо "sometext"

$text = "sometext";
$lineOfValue = preg_replace("/.*sometext[\"', ]*/", "", $line);

Может кто-нибудь мне помочь?

  • 2
    $lineOfValue = preg_replace("/.*$text[\"', ]*/", "", $line); Где проблема ?!
  • 0
    Получение этой ошибки при добавлении, как ваш ответ: Ошибка синтаксического анализа: синтаксическая ошибка, неожиданное '' (T_ENCAPSED_AND_WHITESPACE), ожидаемый идентификатор (T_STRING) или переменная (T_VARIABLE) или число (T_NUM_STRING) в D: \ xampp \ htdocs \ wordpresstest \ write.php на линии 12
Показать ещё 2 комментария
Теги:
preg-replace

1 ответ

1

В регулярном выражении символ $ обозначает конец обрабатываемой строки, поэтому включение переменной в регулярное выражение, предложенное @Rizier123, не будет работать.

Вместо этого переменная должна быть конкатенирована в регулярное выражение следующим образом, чтобы избежать неверного истолкования $:

$text = 'sometext';
$lineOfValue = preg_replace("/.*" . $text . "[\"', ]*/", "", $line);

Кроме того, если ваша текстовая переменная $ может содержать любой символ, вы должны использовать preg_quote(), чтобы строка была безопасной для использования в регулярном выражении:

$text = 'sometext';
$lineOfValue = preg_replace("/.*" . preg_quote($text, '/') . "[\"', ]*/", "", $line);
  • 1
    Разделитель выражений также должен быть экранирован.
  • 0
    Хороший вызов - я отредактировал пример, чтобы показать использование необязательного второго параметра preg_quote ()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню