您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在Python中搜索正则表达式匹配?

5b51 2022/1/14 8:20:24 python 字数 1448 阅读 457 来源 www.jb51.cc/python

我需要尝试一个字符串对多个(独占 – 意味着匹配其中一个的字符串不能匹配任何其他)正则表达式,并根据它匹配的代码执行不同的代码.我现在拥有的是: m = firstre.match(str) if m: # Do something m = secondre.match(str) if m: # Do something else m = thirdre.match(str)

概述

m = firstre.match(str)
if m:
    # Do something

m = secondre.match(str)
if m:
    # Do something else

m = thirdre.match(str)
if m:
    # Do something different from both

除了丑陋之外,这个代码与所有正则表达式相匹配,即使它匹配其中一个(比如firstre),这是低效的.我试着用:

elif m = secondre.match(str)

但是我知道if语句中不允许赋值.

有没有一种优雅的方式来实现我想要的?

def doit( s ):

    # with some side-effect on a
    a = [] 

    def f1( s,m ):
        a.append( 1 )
        print 'f1',a,s,m

    def f2( s,m ):
        a.append( 2 )
        print 'f2',m

    def f3( s,m ):
        a.append( 3 )
        print 'f3',m

    re1 = re.compile( 'one' )
    re2 = re.compile( 'two' )
    re3 = re.compile( 'three' )


    func_re_list = (
        ( f1,re1 ),( f2,re2 ),( f3,re3 ),)
    for myfunc,myre in func_re_list:
        m = myre.match( s )
        if m:
            myfunc( s,m )
            break


doit( 'one' ) 
doit( 'two' ) 
doit( 'three' )

总结

以上是编程之家为你收集整理的如何在Python中搜索正则表达式匹配?全部内容,希望文章能够帮你解决如何在Python中搜索正则表达式匹配?所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶