我正在尝试捕获一行中的美元金额:

例:
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'

07-24 09:52
查看更多