我正在使用Python 2.7。正則表達式中的*和。*之間的區別(使用python)
我想知道*
和.*
之間的區別,而匹配的話。
以下是在Python代碼
exp = r'.*c' #here is the expression
line = '''abc dfdfdc dfdfeoriec''' #the words I need to match
re.findall(exp,line) #python expression
從上面的代碼的輸出是:
['abc dfdfdc dfdfeoriec']
如果我改變exp
值:
exp = r'*c'
...然後執行時我得到以下錯誤:
Traceback (most recent call last): File "<stdin>", line 1, in
<module> File "C:\Program
Files\Enthought\Canopy32\App\appdata\canopy-1.0.0.1160.win-x86\lib\re.py",
line 177, in findall
return _compile(pattern, flags).findall(string) File "C:\Program Files\Enthought\Canopy32\App\appdata\canopy-1.0.0.1160.win-x86\lib\re.py",
line 242, in _compile
raise error, v # invalid expression error: nothing to repeat
這裏是另一個代碼
exp = r'c.*'
line1='''cdlfjd ceee cll'''
re.findall(exp,line1)
從上面的代碼的輸出是
['cdlfjd ceee cll']
如果我的exp
值更改爲:
exp = r'c*'
,然後執行我得到以下輸出。
['c', '', '', '', '', '', '', 'c', '', '', '', '', 'c', '', '', '']
請解釋此行爲。
你有沒有擡頭的文件定期Python中的表達式? –
有一些其他的RE問題,這是一個騙局... –