我正在使用 Python 2.7。
我想知道匹配单词之间*
的区别。.*
以下是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', '', '', '']
请解释这种行为。