我有一个关于在re.match函数中抛出exeptions的简单问题
有没有办法让'匹配'功能引发异常?也许有些旗帜。如果这是不可能的,那么RE库中还有一些其他函数会在列表为空时抛出异常。
示例:
verify_link=re.match(".*"+str(country).lower()+"."+str(city).lower()+".*",link)
此示例在某些情况下返回None
我正在寻找一种会抛出异常的方法,而不是无 我可以通过'if'语句来做到这一点,但也许还有其他任何方式
答案 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())
编辑:你应该考虑到'。'将仅在上面的示例中匹配点。
但我认为这不是检查子字符串是否在字符串内的最佳方法。