首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

【新手有关问题】python正则转义特殊字符,r不好使?

2012-09-13 
【新手问题】python正则转义特殊字符,r不好使??请问各位大侠,在这个例子中我想验证匹配123在字符串(里面带

【新手问题】python正则转义特殊字符,r不好使??
请问各位大侠,在这个例子中我想验证匹配'123'在字符串(里面带有正则特殊字符)中存在否,怎么结果是n呢?

import re
p = re.compile('123')
string = r'{123}'
if (p.match(string)):
  print('y')
else:
  print('n')

[解决办法]
match 匹配完整字符串,这里最好采用 search

Python code
import rep = re.compile('123')string = r'{123}'if (p.search(string)):   print('y')else:   print('n')
[解决办法]
Python code
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
[解决办法]
Python code
>>> import re>>> p = re.compile('123')>>> string = '\{123\}'>>> if (p.search(string)):...     print('y')... else:...     print('n')...y>>> 

热点排行