如何编写正确正则表达式从指定长字符串中提取目标数值9.56
原有正则错误原因
|是正则的特殊元字符,代表「或」逻辑,未转义时不会匹配原字符串里的普通竖线字符- 匹配规则完全没有对应目标数值前后的
<strong>标签结构,无法准确定位到9.56的位置
正确实现方案
优先推荐(精准匹配,避免干扰)
利用目标数值唯一被<strong>标签包裹的特征编写正则,不会误匹配字符串中其他零散数字(比如0.1m1v0里的0.1、1等干扰项):
正则表达式:<strong>(\d+\.\d+)</strong>
对应VB.NET代码:
Dim matchResult = Regex.Match(inputString, "<strong>(\d+\.\d+)</strong>") If matchResult.Success Then Dim targetNum = matchResult.Groups(1).Value ' 提取结果为9.56 End If
备用方案(不依赖HTML标签)
如果目标数值的包裹标签不固定,可以用前后断言确保匹配到的是完整独立的浮点数:
正则表达式:(?<!\d)(\d+\.\d+)(?!\d)
内容的提问来源于stack exchange,提问作者microgen
相关产品推荐
相关产品推荐

