странная ошибка регулярного выражения php

#php #regex

#php #регулярное выражение

Вопрос:

я использую такое регулярное выражение $msg = preg_replace('/<b>(w)</b>/', '9999', $msg); для замены <b>test</b> , но оно не заменяет. почему?

Комментарии:

1. Вам нужно w . В противном случае она соответствует только одной букве в <b> тегах.

Ответ №1:

Вам не хватает токена количества. Это соответствовало бы только строкам длиной в один символ между <b> тегами.

 $msg = preg_replace('/<b>(w*)</b>/', '9999', $msg); 
  

Ответ №2:

Обратите внимание на плюс после w

  $msg = preg_replace('/<b>(w )</b>/', '9999', $msg);
  

Ответ №3:

Ваше w не соответствует. Я не нахожу своего руководства по регулярным выражениям прямо сейчас, но использую что-то вроде .* .

Ответ №4:

попробуйте это

 $msg = preg_replace('#<b>(w)*</b>#', '9999', $msg);