RegEx в PHP - например, замените теги <B>на <I> - PullRequest
1 голос
/ 24 ноября 2011

Я почти ничего не знаю о RegEx, даже после прочтения нескольких руководств: \ Я просто хочу знать, как заменить теги тегами - как вы сопоставляете тег и как вы заявляете, что хотите его заменить?сохранить текст тега как есть?Я видел что-то около $ 1 в строке замены, но я не знаю, что это означает?

Будь как можно глубже, я новичок в этом и мне нужна помощь!

Ответы [ 2 ]

2 голосов
/ 24 ноября 2011

Вот очень простой пример:

    $regex = '~
      <b>           #match opening <b> tag
      (.*?)         #match anything in between
      </b>          #match closing </b> tag
    ~six';

    preg_replace($regex, '<i>$1</i>', $input);

В этом примере регулярное выражение соответствует открывающемуся содержимому B-тега в теге и закрывающему B-тегу.Следующий шаблон (. *?) Группирует содержимое по отдельности, чтобы впоследствии вы могли ссылаться на него как на $ 1.

Если мы слегка изменим выражение, добавив дополнительные скобки для группировки:

    $regex = '~
      (<b>)         #match opening <b> tag
      (.*?)         #match anything in between
      (</b>)        #match closing </b> tag
    ~six';

    preg_replace($regex, '<i>$2</i>', $input);

Запасная часть изменитсяот $ 1 до $ 2, поскольку у нас есть три группы, на которые мы ссылаемся (. *?) с $ 2, поскольку это вторая группа и т. д. *

http://www.php.net/manual/en/reference.pcre.pattern.syntax.php

0 голосов
/ 24 ноября 2011

Я бы посоветовал вам взглянуть на некоторые обучающие видео, так как их чтение, очевидно, не помогло, я мог бы представить, что ответ на вопрос о том, как заменить <B> на <I>, не поможет ни.Вот видеоурок на YouTube, например: Учебники по регулярным выражениям, часть №1 для PHP - Javascript

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...