我有这样的HTML代码:
<div style="font-size:15px;">This is test number 55</div>
<span class="max5">Your number is: 5599</span>
我想获取必须位于55
和5599
的HTML标记之间的所有数字,我尝试了这些模式,但是没有运气:
第一:
<\s*[a-z][^>]*>(\d+)<\s*/\s*[a-z]>
然后:
\>(\d*)\<
答案 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.
请注意,这不适用于嵌套标签。