2011-06-22 117 views
1

我对自己在re.match函数抛出产生的异常一个简单的问题问题:抛出例外re.match功能

有没有一种方法来“匹配”功能引发了异常?也许有一些标志。如果这是不可能的,也许在RE库中有一些其他函数,例如当列表为空时抛出异常。

例子:

verify_link=re.match(".*"+str(country).lower()+"."+str(city).lower()+".*",link) 

这个例子在某些情况下返回None

我要寻找的是会抛出异常,不无 我可以用“如果”的声明,但mayby做到这一点的方法有任何其他方式

+0

。 W时的T? –

+0

你能解释你想要做什么吗? –

+0

我更新了帖子,对于不好的描述感到抱歉,我赶紧写下了它。 –

回答

3

Python re模块中没有这样的函数。见doc

例外re.error

发生异常时字符串传递到的功能之一这里 不是有效的正则表达式(用于 例如,它可能含有无与伦比 括号)或在编译或匹配过程中发生其他一些错误 。 这是如果一个字符串 不包含任何模式的匹配,则不会发生错误。

1

呃?例外情况只能发生在特殊情况下,而不是你所描述的情况。但是,如果必须,您可以始终使用if检查返回值,然后引发异常。

编辑:甚至会让自己的功能,隐藏异常抛出...

0

如果你想抛出异常???所以你可以使用index字符串的方法,例如:

verify_link = link.index(str(country).lower()+"."+str(city).lower()) 

编辑:你应该考虑到,“”只会在我上面的示例中匹配点。

但我认为这不是检查子字符串在字符串内的最佳方法。

+0

'.'在这里与正则表达式中的意思不同。 –

+0

哦,是的,当然,你是对的 –

2
if re.match(".*"+str(country).lower()+"."+str(city).lower()+".*", link) is None: 
    raise Exception('whatever')