按顺序搜索(x,y)对

时间:2011-10-01 16:07:16

标签: python regex

我想在字符串中找到匹配(x,y)。 以下看起来好吗?

或者你可以提出更好的选择。请注意,在(x,y)对之间,mystring中可能存在几个空格或逗号。

#!/usr/bin/env python
import re
mystring="(3,4) , (2, 4),(5,4), (2,3), "

tmp= re.findall(r'\(\d+,\d\)+', mystring)
print tmp

for i, v in enumerate(tmp):
    if v =="(5,4)":
        print "match found"

谢谢。

3 个答案:

答案 0 :(得分:3)

而不是

re.findall(r'\(\d+,\d\)+', mystring)

使用

re.findall(r'\(5,4\)', mystring)

它只能找到你想要的那对

答案 1 :(得分:2)

为什么不搜索你想要的那对?此外,您可以使用\ s来匹配空格。

import re

def find_pair(x, y, mystring):
    return re.findall(r'\(\s*?%d,\s*?%d\s*?\)+' % (x, y), mystring);

print find_pair(2, 4, "(3,4) , (2,   4),(5,4), (2,3), ")

答案 2 :(得分:2)

不需要正则表达式:

ast.literal_eval(mystring).count((5,4))

if (5,4) in ast.literal_eval(mystring):
    print('Found!')