Регулярное выражение - PullRequest
0 голосов
/ 17 августа 2010

Как написать RegEx для:

Найти совпадение, где первый экземпляр символа > находится перед первым экземпляром символа <.

(Iищу плохой HTML, где закрытие > изначально в строке не имеет открытия <.)

Ответы [ 3 ]

2 голосов
/ 17 августа 2010

Довольно плохая идея - попытаться проанализировать html с помощью регулярного выражения или даже попытаться обнаружить нарушенный html с помощью регулярного выражения.

Что происходит при разрыве строки, когда символ> является первым символом в строке, например (действительный html).

Вы также можете получить некоторое преимущество, прочитав ответы на этот вопрос: RegEx соответствует открытым тегам, кроме автономных тегов XHTML

1 голос
/ 17 августа 2010

Будет ли это работать?

string =~ /^[^<]*>/

Это должно начинаться с начала строки, искать все символы, которые не являются открытыми '<', а затем совпадать, если находит закрывающее '>'тег.

0 голосов
/ 17 августа 2010
^[^<>]*>

если вам нужен соответствующий <,

^[^<>]*>[^<]*<

Если есть возможность тегов перед первым >,

^[^<>]*(?:<[^<>]+>[^<>]*)*>

Обратите внимание, что он может давать ложные срабатывания, например,

<!-- > -->

является допустимым HTML, но RegEx будет жаловаться.

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