@mirikkingg

Почему регулярное выражение парсит лишь первую строку?

Нужно получить все href="(.*?)", а по фатку я получаю лишь 0ую
Тест регулярки

Или

<table>
		<th>Name</th><th>Size</th><th>Date Modified</th>
				
		<tr>
		<td><a href="../">../</a></td>
		<td></td>
		<td></td>
		</tr>

		<tr>
		<td><a href="\AppMusic\assets\tracks\104, Miyagi, Skriptonit - Ne Zhal.mp3">104, Miyagi, Skriptonit - Ne Zhal.mp3</a></td>
		<td>8.7 MB</td>
		<td>2/25/22, 23:24:44</td>
		</tr>

		<tr>
		<td><a href="\AppMusic\assets\tracks\Fem.Love - Photografiryu zakat.mp3">Fem.Love - Photografiryu zakat.mp3</a></td>
		<td>6.0 MB</td>
		<td>3/19/22, 1:18:50</td>
		</tr>

		</table>


var pathFor = new RegExp('(?<=href=")(.+?)(?=")');
  • Вопрос задан
  • 93 просмотра
Решения вопроса 2
@zkrvndm
Софт для автоматизации
Для парсинга html кода существует DOMParser:
https://developer.mozilla.org/ru/docs/Web/API/DOMParser
Использовать регулярки для получения ссылок это накладно по расходам и неоправданно.
Ответ написан
Комментировать
По умолчанию ищет только первое совпадение.
Чтобы сделать поиск глобальным, нужно добавить соответствующий флаг "g"

var pathFor = new RegExp('(?<=href=")(.+?)(?=")', 'g');
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы