Обычно плохо анализировать HTML с помощью Regex.
HTML не является обычным языком, поэтому регулярные выражения недостаточно приспособлены для его работы.Шутки в сторону. Вы можете вызвать ктулху.
При этом, если вы знаете, что ваши <label>
теги находятся только в одной строке, все они правильно отформатированы, и вы действительно решив использовать регулярное выражение, это поможет:
<label.*?>.*?:(.*?)<\/label>
Он получает открывающий тег label
, читает первый экземпляр двоеточия и затем захватывает все последо тех пор, пока он не достигнет метки закрытия ярлыка. См. Демонстрацию здесь.
Это работает только для опубликованных вами примеров. Если после метки есть другой атрибут или у вас есть вложенные теги метки (по какой-то причине)или где-нибудь еще в метке появляется двоеточие, регулярное выражение разрушается.Если вы уже работаете в JS, возможно, гораздо лучше использовать element.innerText
, чтобы получить текст, а затем изменить его таким образом.