没有if-else语句的优雅python模式搜索

时间:2013-09-05 00:01:42

标签: python regex

是否有一种优雅的单行方式来查找包含7的数字,除非它只是7?

if  re.search(r'(\d+)?(7)(\d+)', line):
    print "Found 7 inside or beginning of a number", match.group()
else:
    if  re.search(r'(\d+)(7)(\d+)?', line):
        print "Found 7 in the end of a number", match.group()

2 个答案:

答案 0 :(得分:7)

你的意思是

'7' in line and len(line) > 1

您还可以使用str.isdigit()检查所有字符是否都是数字。

答案 1 :(得分:0)

这是一个涉及正则表达式的简单解决方案,因为您具体要求:

re.search("(7.)|(.7)", line)