Всем привет! Сейчас я изучаю регулярные выражения в разрезе JavaScript. Регулярка в коде, который я нашел, находит первую форму: Код (Javascript): /<form[^>]+[^>]*>/i Подскажите, пожалуйста, как сделать регулярку, которая бы находила вторую по счету форму?
Добрый день! Важно правильно расставить приоритеты - выбрать оптимальное решение для поиска второй по счету форму из JS или обязательно исрользовать для этого регулярку. Оптимальное решение в Вашем случае не ругулярка, но если очень хочется, то здесь всё HTML: <html> <body> <div> <form name="a"></form> <form name="b"></form> <form name="c"></form> </div> </body> <script> divForms = document.getElementsByTagName("div")[0]; AllForms = divForms.getElementsByTagName("form"); console.log(AllForms); /* HTMLCollection { 0: form, 1: form, 2: form, length: 3, … } 0: <form name="a"> 1: <form name="b"> 2: <form name="c"> a: <form name="a"> b: <form name="b"> c: <form name="c"> length: 3 */ console.log(" form[1].name = ",AllForms[1].name); /* form[1].name = b */ // RegExp divFormsContent string divFormsContent = divForms.innerHTML; console.log(divFormsContent); /* <form name="a"></form> <form name="b"></form> <form name="c"></form> */ regexp = new RegExp("<form[^>]*>(.*?)</form>", "gms"); findForms = []; while ((matches = regexp.exec(divFormsContent)) !== null) { console.log(`Found ${matches[0]}. Next starts at ${regexp.lastIndex}.`); findForms.push(matches[0]); } /* Found <form name="a"></form>. Next starts at 23. form.html:35:11 Found <form name="b"></form>. Next starts at 46. form.html:35:11 Found <form name="b"></form>. Next starts at 69. */ console.log(findForms[1]); /* <form name="b"></form> */ </script> </html> Удачи!