【新手问题】python正则转义特殊字符,r不好使??
请问各位大侠,在这个例子中我想验证匹配'123'在字符串(里面带有正则特殊字符)中存在否,怎么结果是n呢?
import re
p = re.compile('123')
string = r'{123}'
if (p.match(string)):
print('y')
else:
print('n')
[解决办法]
match 匹配完整字符串,这里最好采用 search
import rep = re.compile('123')string = r'{123}'if (p.search(string)): print('y')else: print('n')
[解决办法]
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32Type "copyright", "credits" or "license()" for more information.>>> import re>>> s = r'{123}'>>> p = re.compile('123')>>> m = p.search(s)>>> if m: print 'y' y>>> m = p.match(s)>>> print mNone>>>
[解决办法]
1、string=r'{123}'没看出来含有正则式特殊字符,它就是本身 {123}
2、re.match()匹配是从匹配对象的第一个字符开始匹配,你用 123去匹配{123}返回肯定是 None
[解决办法]
>>> import re>>> p = re.compile('123')>>> string = '\{123\}'>>> if (p.search(string)):... print('y')... else:... print('n')...y>>>