【发布时间】:2021-09-08 16:20:51
【问题描述】:
我需要在这段 HTML 代码中提取括号中的数字 5:
<td class="th-clr-cel th-clr-td th-clr-pad th-clr-cel-dis" style="width:226px; text-align:left; ">
<span class="th-tx th-tx-value th-tx-nowrap" style="width:100%; " title="Social Insurance Number (SIN)" id="C29_W120_V121_builidnumber_table[5].type_text" f2="C;40">
Social Insurance Number (SIN)
</span>
这只是整个 HTML 代码的摘录,在此示例之前和之后还有更多实际代码。但有一点是肯定的,“保险”这个词只出现在这个样本中。
我设法用这个正则表达式匹配“社会保险号”的两个实例之间的任何内容:
((?<=Social Insurance Number)(.*)(?=Social Insurance Number))
现在我需要将它组合起来并提取方括号中的数字 5。
请注意:括号的内容可以是多个字符(即:15),但它始终是数字。
谢谢
编辑:我想使用正则表达式解析 HTML 的原因是因为这是 JMeter 脚本的一部分,用于在具有数百个并发用户的系统上运行大规模性能测试。性能是这里的一个主要因素,XML 解析器将比正则表达式消耗更多的资源。
【问题讨论】:
-
具体问题是什么?其他字符中包含的数字的正则表达式?您确定通过解析 HTML 不会更容易吗?
-
.*\[(\d+)\].*对你有用还是我错过了什么? -
就像我说的,我在此处发布的示例前后会有大量代码。所以会有很多其他的括号和数字。我需要提取出现在“保险”一词的两个实例之间的那个
-
我感觉这句话已经说了一百万遍了,但是不要使用 Regex 来解析 HTML
标签: regex