Skip to main content
 首页 » 编程设计

python之在正则表达式 Python 中捕获 $

2025年05月04日24findumars

我试图在一行中获取美元金额:

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