これは動作するはずです:
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
ありがとう、これは素晴らしいです! SOの答えの質は私を驚かせることを決して決してしない:) –