python中的r字符串(r'foobar'
)和普通字符串('foobar'
)有什么区别?r'string'是正则表达式字符串吗?在
我尝试了以下操作,但对我的正则表达式匹配没有任何影响:
>>> import re
>>> n = 3
>>> rgx = '(?=('+'\S'*n+'))'
>>> x = 'foobar'
>>> re.findall(rgx,x)
['foo', 'oob', 'oba', 'bar']
>>>
>>> rgx2 = r'(?=('+'\S'*n+'))'
>>> re.findall(rgx2,x)
['foo', 'oob', 'oba', 'bar']
>>>
>>> rgx3 = r'(?=(\S\S\S))'
>>> re.findall(rgx3,x)
['foo', 'oob', 'oba', 'bar']
在使用反斜杠转义符的情况下,这种区别将变得明显:
引自String literal:
您可能还想引用Lexical Analysis。在
r
不表示“regex string”;它的意思是“raw string”。根据the docs:相关问题 更多 >
编程相关推荐