使用正则表达式获取所有HTML标记之间的所有数字

时间:2018-11-05 19:33:49

标签: regex

我有这样的HTML代码:

<div style="font-size:15px;">This is test number 55</div>
<span class="max5">Your number is: 5599</span>

我想获取必须位于555599的HTML标记之间的所有数字,我尝试了这些模式,但是没有运气:

第一:

<\s*[a-z][^>]*>(\d+)<\s*/\s*[a-z]>

然后:

\>(\d*)\<

2 个答案:

答案 0 :(得分:2)

如果您真的只能使用正则表达式,那么在大多数情况下应该可以使用

/\d+(?![^<]*>)/g

演示https://regex101.com/r/b71t0r/1(此处为PHP regex,但应与所有流行的引擎一起使用)

答案 1 :(得分:1)

您可以使用此正则表达式:

/<(\w+)[^>]*?>(.*?)<\/\1>/g

首先匹配开始标记,然后在(\w+)中捕获该标记'Group 1'的名称,然后将所有字符匹配为'>',任意数量的次,然后在匹配“ Group 2”之前创建一个</,并包含任意数量的任何字符,后跟Group 1'\ 1'中的标记名。

您想要的输出将在Group 2.

请注意,这不适用于嵌套标签。