python: multiline regular expression

前端 未结 3 1035
广开言路
广开言路 2021-01-22 17:26

I have a piece of text and I\'ve got to parse usernames and hashes out of it. Right now I\'m doing it with two regular expressions. Could I do it with just one multiline regular

3条回答
  •  感动是毒
    2021-01-22 18:02

    A simple pyparsing version:

    from pyparsing import *
    
    username = Word(alphas,alphanums+"_")
    hash = Word(alphanums)
    
    patt = ("Hello," + username("username") + '.' + 
            SkipTo("write down this hash:", include=True) + 
            hash("hash"))
    
    for tokens,start,end in patt.scanString(test_str):
        print tokens.hash, '->', tokens.username
    
    # or to build a dict
    hashNameLookup = dict((t.hash, t.username) 
                                    for t,s,e in patt.scanString(test_str))
    

    Prints:

    fdaf9399jef9qw0j -> UserName
    gtwnhton340gjr2g -> UserName2
    

提交回复
热议问题