[英]REGEX look ahead problems
我需要從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>
正則表達式字符串
(?<=(Tax:.*\n.*))(=?\$\d*.\d{2})
我收到語法錯誤,無效的量詞。 有沒有更簡單的方法可以做到這一點?
為此,您不需要先行或后行。 嘗試匹配此模式:
Tax:[\\s\\S]*?(\\$\\d*\\.\\d{2})
然后替換為$1
首先,javascript不支持lookbehind
。 其次,您的lookbehind
具有可變長度( .*
),它不支持大多數正則表達式。 最后添加您要對此進行的操作(=?
先行(如(?=)
?),則語法錯誤,否則可以。
但是您可以實現此目標而無需任何回頭。
改用這個:
pattern = new RegExp(/Tax:[\s\S]*?<b>(\$\d+(\.\d+)?)<\/b>/i);
match = pattern.exec(input);
alert(match[1]);
前行的語法是(?=
,不是(=?
除此之外,您不希望先行或回頭(JS不支持)。 您只想匹配:
Tax:.*\n.*(\$\d*.\d{2})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.