我正在尝试捕获一行中的美元金额:
例:blah blah blah (blah $23.32 blah) blah blac (blah)
我想捕获“ $ 23.32”
这就是我正在使用的:r'?([\$][.*]+)'
我告诉它找到(...)的一次出现?
然后,我告诉它查找以“ $”开头的内容以及之后可能出现的任何字符(因此我也可以得到小数点)。
但是,出现错误error: nothing to repeat
最佳答案
开头的问号是nothing to repeat
错误的原因。
>>> import re
>>> re.compile(r'?')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/mj/Development/venvs/stackoverflow-2.7/lib/python2.7/re.py", line 190, in compile
return _compile(pattern, flags)
File "/Users/mj/Development/venvs/stackoverflow-2.7/lib/python2.7/re.py", line 242, in _compile
raise error, v # invalid expression
sre_constants.error: nothing to repeat
匹配美元加上数字和点:
r'\$[\d.]+'
演示:
>>> re.search(r'\$[\d.]+', 'blah blah blah (blah $23.32 blah) blah blac (blah)').group()
'$23.32'