По умолчанию .*
является жадным , что означает, что оно максимально соответствует.Таким образом, с .*
замена изменится:
This <b>is</b> an <i>example</i>.
^-------------------------^
на
This .
Если вы используете вопросительный знак после квантификатора, это делает его нежаднымтак, чтобы оно совпадало как можно меньше.С .*?
замена работает следующим образом:
This <b>is</b> an <i>example</i>.
^-^ ^--^ ^-^ ^--^
Становится:
This is an example.
Это отличается от более распространенного использования ?
в качестве квантификатора, где это означает «совпадение»ноль или единица '.
В любом случае, если ваш текст HTML, вы должны использовать анализатор HTML вместо регулярных выражений.