我想在字符串中找到匹配(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"
谢谢。
答案 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!')