0

我是正则表达式的新手,但是通过字符串查找是否存在模式。

我尝试使用以下 python 代码:

prog=re.compile('555.555.555')
m=prog.match(somestring)
if m: print somestring

我试图找到由任意数字分隔的 3 组 5。不过,此代码不会返回我正在寻找的内容。

有什么建议么?

编辑:

这是一些测试更基本版本的代码:

i,found=0,0
while found==0:
    istr=str(i)
    prog=re.compile(r'1\d2\d3')
    m=prog.search(istr)
    if m:
        print i
        found=1
        break
    i=i+1

这将返回 1312 而不是 10203

4

1 回答 1

5

你的正则表达式没问题(有点),但你用错了。你需要

m = prog.search(somestring)

或者正则表达式只会在字符串的开头找到匹配项

此外,如果您真的只想在每组555s 之间允许一个数字,请使用

prog = re.compile(r'555\d555\d555')
于 2012-07-16T14:06:24.953 回答