Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python正则表达式:处理非匹配的更好方法?_Python 3.x_Regex_Coding Style - Fatal编程技术网

Python 3.x Python正则表达式:处理非匹配的更好方法?

Python 3.x Python正则表达式:处理非匹配的更好方法?,python-3.x,regex,coding-style,Python 3.x,Regex,Coding Style,当我处理正则表达式时,我的代码中充满了条件,以便在找不到模式时不会创建异常: m=一些已编译的模式匹配 如果m: x=m组 用X做点什么 m=一些其他编译模式。搜索: 如果m: y=m.groupdict 其他: y={} 你还有别的事吗 是否有更好的、不太冗长的方法来处理此类异常?您可能会发现,如果没有匹配处理,该类可以将大多数异常减少到一行 类返回: 使一个对象假装拥有所有可能的方法, 但返回相同的值default None,无论此方法如何, 或者它的论点,是。 def u_init__se

当我处理正则表达式时,我的代码中充满了条件,以便在找不到模式时不会创建异常:

m=一些已编译的模式匹配 如果m: x=m组 用X做点什么 m=一些其他编译模式。搜索: 如果m: y=m.groupdict 其他: y={} 你还有别的事吗
是否有更好的、不太冗长的方法来处理此类异常?

您可能会发现,如果没有匹配处理,该类可以将大多数异常减少到一行

类返回: 使一个对象假装拥有所有可能的方法, 但返回相同的值default None,无论此方法如何, 或者它的论点,是。 def u_init__self,return_val=None: self.return\u val=返回值 定义仅适用于方法的参数为*args,**kwargs: 返回值 self.the_only_method_there_is=MethodTypethe_only_method_there_is,self def__getattr__self,项目: 如果不是item.startswith''uu'和item不在{'return'val','the'u only'u method'u there'u id'中: 返回self。只有方法存在 其他: 返回getattrself,项目 示例用法:

>>>进口稀土 >>>p=re.compiler'\d+\W+\W+' >>> >>>当一切顺利时。。。 >>>m=p.搜索“经常提到的数字42” >>>num,next_word=m个组 >>>num,下一个单词 ‘42’、‘是’ >>> >>>当找不到模式时。。。 >>>m=p.搜索“此处无编号” >>>断言m为无m为无因此。。。 >>>num,next_word=m.groups。。。这会窒息的 回溯最近一次呼叫上次: ... AttributeError:“非类型”对象没有属性“组” >>> >>>返回营救 >>>num,next\u word=p.搜索“此处无数字”或返回一个“默认单词”。分组 >>>assert num是None >>>下一个字 “默认单词” 编辑:有关此问题的详细讨论和替代但类似的解决方案,请参阅