使用正则表达式

时间:2019-02-26 19:21:01

标签: regex

我有以下字符串:

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 :(得分:2)

以下方法应该起作用:

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

Demo

说明:

  • \w*-匹配第一个标签之前的所有单词字符。
  • <sub>-匹配第一个开始标签。
  • \w*-在第一个标签之间匹配文本。
  • <\/sub>-匹配第一个结束标记。
  • [^ \.]*-匹配以下所有非空格或句号(如果匹配出现在句子结尾)的字符。包括匹配任何其他已连接的子标签。
  • g flag-启用全局搜索,使所有匹配项都匹配。

答案 1 :(得分:0)

已更新:选择所有包含<sub>标签的单词

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

\w+匹配任何单词字符

<sub>从字面上匹配字符<sub>(区分大小写)

<\/sub>从字面上匹配字符</sub>(区分大小写)

+在一次和无限次之间进行匹配