我想在一个字符串中匹配一个数字,如下:t=‘34’(t是变量,从文件读入的)如果写re.compile(t)的话,1342,342 134等这些都能匹配了显然不行然后我写成re.compile(\Dt\D),但是错误的写成re.compile(‘\Dt\D’),匹配的是前面和后面都不是数字的't',不是想要的本人正则刚学不久,请高手指教下啊,
如果你确定数字前后一定有非数字字符的话,可以用 re.compile('\D({0})\D'.format(t))。否则就还要复杂点。先是用format组成pattern。如果t=34的话,pattern就是'\D(34)\D'。你需要匹配的用括号括起来,这样后面匹配的时候可以从结果里用group读出来。例如:pattern = re.compile('\D({0})\D'.format('34'))m = pattern.match('abcd34efg')print m.group(1) 结果就是34