[英]How do I extract numbers from a string in JavaScript without using regular expressions?
[英]How do I Extract a Javascript Value using Regular Expressions?
我正在嘗試從 Javascript 的以下位中提取ProductValue
:
<script language="javascript" type="text/javascript">
lpAddVars('page','Section','womens');
lpAddVars('page','CartTotal','0.00');
lpAddVars('page','ProductID','43577');
lpAddVars('page','ProductValue','128.00');
</script>
我不認為 Beautiful Soup 解析 javascript 所以我認為最好的方法可能是使用正則表達式,但我對 re 很陌生,到目前為止我嘗試過的任何東西似乎都不起作用。 關於如何做到這一點的任何建議或幫助?
謝謝!
這應該有效:
import re
javascript_text = '''
<script language="javascript" type="text/javascript">
lpAddVars('page','Section','womens');
lpAddVars('page','CartTotal','0.00');
lpAddVars('page','ProductID','43577');
lpAddVars('page','ProductValue','128.00');
</script>
'''
product_value = re.findall(r"ProductValue.*,['|\"](.*)['|\"]", javascript_text)
# at this point, product_value = ['128.00']
那么 "ProductValue.*,'|\"['|\"]" 到底在做什么呢?
"ProductValue.*,'|\"['|\"]"
ProductValue -- 只是您要搜索的文字字符串
.* -- 我們想要任意數量的字符,所以空格、單引號等等
, -- 一旦我們到達“,”,我們將停止允許“。*”匹配所有字符
['|\"] -- 我們要匹配單引號或雙引號
(.*) -- 這是我們真正感興趣的位,可以是任何字符
['|\"] -- 同樣,一旦我們到達結束單引號或雙引號,我們將停止 ".*"
從這一點開始,我會做類似的事情:
product_values = []
for value in product_value:
value = value.strip() # get rid of any excess whitespace
value = float(value) # ProductValue appears to be a float of some sort
product_values.append(value) # store the value
/'ProductValue'\s*,\s*(.*?)\s\)/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.