Не понимаю как в регулярном выражении правильно поставить ленивые квантификаторы
Никак не могу додуматься как правильно расположить ленивые квантификаторы. У меня есть следующий код HTML -
<TR CLASS=R4> <TD><SPAN></SPAN></TD> <TD CLASS="R" COLSPAN=3><SPAN STYLE="w;">К</SPAN></TD> <TD CLASS="R"><SPAN STYLE="w;">48</SPAN></TD> <TD CLASS="R"><SPAN></SPAN></TD> <TD CLASS="R" COLSPAN=3><SPAN STYLE="w;">П</SPAN></TD> <TD CLASS="R" COLSPAN=2><SPAN STYLE="w;">551</SPAN></TD> <TD CLASS="R"><SPAN></SPAN></TD> <TD CLASS="R"><SPAN></SPAN></TD> <TD CLASS="R"><SPAN></SPAN></TD> <TD CLASS="R"><SPAN></SPAN></TD> <TD CLASS="R"><SPAN></SPAN></TD> <TD><SPAN></SPAN></TD> <TD></TD> </TR> <TR CLASS=R4> <TD><SPAN></SPAN></TD> <TD CLASS="R" COLSPAN=3><SPAN STYLE="w;">и</SPAN></TD> <TD CLASS="R"><SPAN></SPAN></TD> <TD CLASS="R"><SPAN></SPAN></TD> <TD CLASS="R" COLSPAN=3><SPAN></SPAN></TD> <TD><SPAN></SPAN></TD> <TD CLASS="R"><SPAN></SPAN></TD> <TD CLASS="R"><SPAN>Да</SPAN></TD> <TD CLASS="R"><SPAN></SPAN></TD> <TD CLASS="R"><SPAN></SPAN></TD> <TD CLASS="R"><SPAN></SPAN></TD> <TD CLASS="R"><SPAN></SPAN></TD> <TD><SPAN></SPAN></TD> <TD></TD> </TR>
Моя задача: если в тегах TR содержится Да, находящийся слева от закрывающего SPAN, то просто взять весь тег TR при условии только первых вхождений этого тега, т.е. от открывающего до закрывающего.
По понятным причинам <TR CLASS=R4>.*>Да<\/SPAN>.*<\/TR> забирает от первого до последнего тега.
Прошу помочь сделать корректное регулярное выражение по постановке задачи. Заранее благодарю!
Ответы (1 шт):
var s = `<TR CLASS=R4> <TD><SPAN></SPAN></TD> <TD CLASS="R" COLSPAN=3><SPAN STYLE="w;">К</SPAN></TD> <TD CLASS="R"><SPAN STYLE="w;">48</SPAN></TD> <TD CLASS="R"><SPAN></SPAN></TD> <TD CLASS="R" COLSPAN=3><SPAN STYLE="w;">П</SPAN></TD> <TD CLASS="R" COLSPAN=2><SPAN STYLE="w;">551</SPAN></TD> <TD CLASS="R"><SPAN></SPAN></TD> <TD CLASS="R"><SPAN></SPAN></TD> <TD CLASS="R"><SPAN></SPAN></TD> <TD CLASS="R"><SPAN></SPAN></TD> <TD CLASS="R"><SPAN></SPAN></TD> <TD><SPAN></SPAN></TD> <TD></TD> </TR> <TR CLASS=R4> <TD><SPAN></SPAN></TD> <TD CLASS="R" COLSPAN=3><SPAN STYLE="w;">и</SPAN></TD> <TD CLASS="R"><SPAN></SPAN></TD> <TD CLASS="R"><SPAN></SPAN></TD> <TD CLASS="R" COLSPAN=3><SPAN></SPAN></TD> <TD><SPAN></SPAN></TD> <TD CLASS="R"><SPAN></SPAN></TD> <TD CLASS="R"><SPAN>Да</SPAN></TD> <TD CLASS="R"><SPAN></SPAN></TD> <TD CLASS="R"><SPAN></SPAN></TD> <TD CLASS="R"><SPAN></SPAN></TD> <TD CLASS="R"><SPAN></SPAN></TD> <TD><SPAN></SPAN></TD> <TD></TD> </TR>`
console.log(s.match(/<TR CLASS=R4>((?!<TR\b).)*>Да<\/SPAN>.*?<\/TR>/)?.[0])