Я бы использовал .*
. .
соответствует любому символу, *
означает 0 или более случаев. Вам может понадобиться переключатель DOTALL в регулярное выражение для захвата новых строк с помощью .
.
Достаточно просто
.
Для совместимость с XHTML; чтобы можно было написать тот же код, что и XHTML, и заставить его работать как HTML. Некоторые системы, генерирующие HTML, могут быть основаны на генераторах XML и, следовательно, не имеют возможности выводить только пустой тег
; если вы используете такую систему, можно использовать
, но в этом нет необходимости, если вам это не нужно.
Однако очень немногие люди действительно используют XHTML. Вам необходимо предоставить свой контент как application / xhtml + xml
, чтобы он интерпретировался как XHTML, и это не будет работать в старых версиях IE - это также будет означать, что любая небольшая ошибка, которую вы сделаете, предотвратит отображение вашей страницы в браузерах, которые поддерживают XHTML. Итак, большая часть того, что выглядит как XHTML в Интернете, на самом деле обслуживается и интерпретируется как HTML. См. Обслуживание XHTML как text / html считается вредным для получения дополнительной информации.
Если вас интересует сопоставимость (не совместимость, а сопоставимость), я бы остановился на
.
В противном случае
в порядке.
XML требует, чтобы все теги имели соответствующий закрывающий тег. Таким образом, существует специальный сокращенный синтаксис для тегов без внутреннего содержимого.
HTML5 не является XML, поэтому он не должен выдвигать такое требование. Как и HTML 4.01.
Например, в спецификациях HTML5 все примеры с тегом br
используют синтаксис
, а не
.
UPD Фактически,
разрешено в HTML5 . 9.1.2.1, 7.
.
UPD Фактически,
разрешено в HTML5 . 9.1.2.1, 7.
.
UPD Фактически,
разрешено в HTML5 . 9.1.2.1, 7.
XML не позволяет оставлять теги открытыми, поэтому он делает
немного хуже, чем два других. Два других примерно эквивалентны второму (
), предпочтительному для совместимости со старыми браузерами. На самом деле, пробел перед
/
предпочтительнее для совместимости, но я думаю, что это имеет смысл только для тегов, у которых есть атрибуты. Поэтому я бы сказал либо
, либо
, в зависимости от того, что нравится вашей эстетике.
Подводя итог: все три действительны с первым (
) немного менее «портативен».
Править : Теперь, когда мы все без ума от спецификаций, я думаю, стоит отметить, что согласно dev. w3.org :
Начальные теги состоят из следующих частей, точно в следующем порядке:
- Символ «<».
- Имя тега элемента.
- Необязательно, один или несколько атрибутов, каждый из которых должен быть перед одним или несколькими пробелами
- Необязательно, один или несколько пробелов.
- Необязательно, символ "/", который может присутствовать, только если element является пустым элементом.
- Символ ">".
Думаю, эта цитата из справочного проекта HTML 5 дает ответ:
3.2.2.2 Пустые элементы
Термин пустые элементы используется для обозначения элементов, которые должны быть пустыми . Эти требования относятся только к синтаксису HTML. В XHTML все такие элементы рассматриваются как обычные, но должны быть помечены как пустые элементы.
Эти элементы вообще не могут содержать какой-либо контент. В HTML эти элементы имеют только начальный тег . Может использоваться синтаксис самозакрывающегося тега . Конечный тег необходимо опустить, поскольку элемент автоматически закрывается анализатором.
Пример HTML:
Пустой элемент в синтаксисе HTML. Это запрещено в синтаксисе XHTML.
Пример:
Элемент void, использующий синтаксис самозакрывающегося тега, совместимого с HTML и XHTML.
Пример XHTML:
Элемент void, использующий синтаксис только для XHTML с явным конечным тегом. Это не разрешено для пустых элементов в синтаксисе HTML.