HTML中的简单正则表达式

问题描述

| 我从网页源代码中获取了以下代码:
<span>41,396</span>
和以下正则表达式:
(\"<span>.*</span>\")
哪个返回
<span>New Users</span>
但是,我不想在结果中包含标签。我已经尝试了一些方法,但是正则表达式对我来说是新的。 不仅如此,我还需要为以下代码获取正则表达式:
<span>41,396</span>
</span>
<span class=\"levelColumn\">
<span>2,150</span>
</span>
<span class=\"xpColumn\">
<span>161,305,807</span>
我当时以为这可能涉及换行符等等,这就是为什么我将其分开放置的原因。     

解决方法

您可以尝试类似
<span( class=\\\".+\\\")?>(.*)</span>
然后获取标签主体的捕获组2。但是请注意,正则表达式不利于解析HTML / XML。如果您嵌套
<span>
标签会怎样? 如果输入的内容比显示的要复杂一点,请查找HTML解析器,然后尝试使用该解析器。     ,您可以不同地使用捕获组来获取值,而不是标签+值
\"<span>(.*)</span>\"
如果正则表达式变得更复杂,请考虑以您选择的语言使用HTML解析库。     ,据我所知,正则表达式将逐行查找,但是您可以使用一个表达式来解决。 试试:
<span>(.*)</span>
您应该能够使用
\\1
检索所需的信息 对于
<span class=\"xpColumn\">
,它将不匹配,而match8ѭ将为空。 干杯:)     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...