问题:在re.match函数中抛出异常

时间:2011-06-22 09:04:36

标签: python regex exception

我有一个关于在re.match函数中抛出exeptions的简单问题

有没有办法让'匹配'功能引发异常?也许有些旗帜。如果这是不可能的,那么RE库中还有一些其他函数会在列表为空时抛出异常。

示例:

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

此示例在某些情况下返回None

我正在寻找一种会抛出异常的方法,而不是无 我可以通过'if'语句来做到这一点,但也许还有其他任何方式

4 个答案:

答案 0 :(得分:3)

Python re模块中没有这样的函数。请参阅doc

  

异常re.error

     

当字符串传递给其中一个函数时引发异常   不是有效的正则表达式(for   例如,它可能包含不匹配的   括号)或其他一些错误   在编译或匹配期间发生。   如果是字符串,永远不会出错   包含模式不匹配。

答案 1 :(得分:2)

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

答案 2 :(得分:1)

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

编辑:甚至自己创建功能,隐藏抛出异常......

答案 3 :(得分:0)

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

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

编辑:你应该考虑到'。'将仅在上面的示例中匹配点。

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