我需要从html文件中检索税额,但似乎JavaScript不支持预测。这是我需要找到的代码和字符串。
HTML代码段
<td align="right" valign="top"><span style="font-family:verdana,arial; font-size:12px; color:#000000;"><b>Tax:</b></span></td>
<td align="right" valign="top"><span style="font-family:verdana,arial; font-size:12px; color:#000000;"><b>$30.10</b></span></td>
Regex String
(?<=(Tax:.*\n.*))(=?\$\d*.\d{2})
我收到语法错误,无效的量词。 有更简单的方法吗?
答案 0 :(得分:0)
你不应该为此寻求前瞻或后视。尝试匹配此模式:
Tax:[\s\S]*?(\$\d*\.\d{2})
然后替换为$1
答案 1 :(得分:0)
首先,javascript不支持lookbehind
。其次,您的lookbehind
具有可变长度(.*
),大多数正则表达式都不支持。最后添加您想要对此(=?
做什么?前瞻(比如(?=)
?那么语法错了,否则就行了。
但你可以在没有后卫的情况下实现这一点。
改为使用这个:
pattern = new RegExp(/Tax:[\s\S]*?<b>(\$\d+(\.\d+)?)<\/b>/i);
match = pattern.exec(input);
alert(match[1]);
答案 2 :(得分:0)
前瞻的语法是(?=
,而不是(=?
。
除此之外,你不需要前瞻或者后视(JS不支持)。你只想匹配:
Tax:.*\n.*(\$\d*.\d{2})