Регулярное выражение соответствует только первому или второму результату из таблицы HTML

Я использую javascript-скрипт регулярного выражения в приложении. Я пытаюсь получить только первое значение или второе значение из каждой таблицы, но не работаю.

   <table>
      <td class="bar">
        <td class="center">hello1</td>
        <td class="center">hello2</td>
        <td class="center">hello3</td>
     </td>
   </table>

   <table>
     <td class="bar">
       <td class="center">hello1</td>
       <td class="center">hello2</td>
       <td class="center">hello3</td>
     </td>
   </table>

мое регулярное выражение кода: /(?<=<td class=\"center\">).*?(?=<\/td>)/gi

этот код выбирает все значения Hello. Я хочу просто выбрать Hello1 из первой таблицы td и второй таблицы td. Я удаляю global, но даю только первый td из первой таблицы.

значение приветствия является динамическим, а не фиксированным.

enter image description here

В вашем примере HTML нет тегов <tr>. Можете ли вы также уточнить, какие значения вы хотите вернуть? Например. назовите их все «hello1», «hello2» и т. д. и скажите: «Я ожидаю, что будут возвращены «hello1» и «hello4»

dezfowler 10.04.2022 14:21

извини, братан, я имею в виду тег <td

devlopper john 10.04.2022 14:26

Я отредактировал значение, значения являются динамическим извлечением из HTML

devlopper john 10.04.2022 14:30
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Сравнение структур данных: Массивы и объекты в Javascript
Сравнение структур данных: Массивы и объекты в Javascript
Итак, вы изучили основы JavaScript и хотите перейти к изучению структур данных. Мотивация для изучения/понимания Структур данных может быть разной,...
Создание собственной системы электронной коммерции на базе Keystone.js - настройка среды и базовые модели
Создание собственной системы электронной коммерции на базе Keystone.js - настройка среды и базовые модели
Прошлая статья была первой из цикла статей о создании системы электронной коммерции с использованием Keystone.js, и она была посвящена главным образом...
Приложение для отслеживания бюджета на React js для начинающих
Приложение для отслеживания бюджета на React js для начинающих
Обучение на практике - это проверенная тема для достижения успеха в любой области. Если вы знаете контекст фразы "Практика делает человека...
Стоит ли использовать React в 2022 году?
Стоит ли использовать React в 2022 году?
В 2022 году мы все слышим о трендах фронтенда (React, Vue), но мы не знаем, почему мы должны использовать эти фреймворки, когда их использовать, а...
0
3
28
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете сделать регулярное выражение что-то как это, которое извлекает текст, который вы ожидаете...

regular expression run results

По сути, соответствие тегам путем исключения символов <> внутри тега.

Однако я думаю, что более простой и менее подверженный ошибкам способ сделать это в JavaScript и DOM - это использовать вместо этого querySelectorAll, например...

let c = document.querySelectorAll('td:nth-of-type(2)');

console.log(Array.from(c).map(i => i.innerText));
   <table>
      <td class="bar">
        <td class="center">hello1</td>
        <td class="center">hello2</td>
        <td class="center">hello3</td>
     </td>
   </table>

   <table>
     <td class="bar">
       <td class="center">hello1</td>
       <td class="center">hello2</td>
       <td class="center">hello3</td>
     </td>
   </table>

спасибо, брат, но если я хочу выбрать только hello2 из каждой таблицы

devlopper john 10.04.2022 15:56

С querySelectorAll вы просто меняете его на td:nth-of-type(3) вместо того, чтобы получать узлы «hello2». С регулярным выражением сложнее, и, как я уже сказал, я бы рекомендовал использовать querySelectorAll.

dezfowler 10.04.2022 16:41

вы видите эту проблему: stackoverflow.com/questions/71818492/…

devlopper john 10.04.2022 18:51

Другие вопросы по теме