Найти все слова в строке, содержащей теги <sub>, используя регулярное выражение - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть следующая строка:

CO<sub>2</sub> is one of the most abundant gases there is, while C<sub>2</sub>SO<sub>4</sub> is very corrosive. Drink H<sub>2</sub> to stay hydrated.

Я хочу извлечь из этой строки все слова, которые содержат вложенные теги.

Я дошел до этого для своего регулярного выражения, но не могу понять, как продолжить.

https://regexr.com/495sp

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Должно работать следующее:

/\w*<sub>\w*<\/sub>[^ \.]*/g

Демо

Объяснение:

  • \w* - Соответствует любым символам слова передпервый тег.
  • <sub> - соответствует первому открывающему тегу.
  • \w* - соответствует тексту между первыми тегами.
  • <\/sub> - соответствуетпервый закрывающий тег.
  • [^ \.]* - сопоставляет любые последующие символы, которые не являются пробелами или точками (в случае совпадения в конце предложения).Включает в себя сопоставление любых дополнительных подключенных вложенных тегов.
  • g flag - включает глобальный поиск, позволяющий сопоставлять все вхождения.
0 голосов
/ 26 февраля 2019

Обновлено: , чтобы выбрать все слова, содержащие тег <sub>

(\w+<sub>\w+<\/sub>)+

\w+ Соответствует любому слову слова

<sub> Соответствует символам<sub> буквально (с учетом регистра)

<\/sub> Соответствует символам </sub> буквально (с учетом регистра)

+ Соответствует между одним и неограниченным временем

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...