Picking piece of string between separators

TrustyTony 1 Tallied Votes 2K Views Share

I used this pattern few times to answer a thread and thought to post it as snippet.

# picking up piece of string between separators
## function using partition, like partition
def between(left,right,s):
    before,_,a = s.partition(left)
    a,_,after = a.partition(right)
    return before,a,after

s = "bla bla blaa <a>data</a> lsdjfasdjöf (important notice) 'Daniweb forum' tcha tcha tchaa"
print between('<a>','</a>',s)
print between('(',')',s)
print between("'","'",s)
                     
""" Output:
('bla bla blaa ', 'data', " lsdjfasdj\xc3\xb6f (important notice) 'Daniweb forum' tcha tcha tchaa")
('bla bla blaa <a>data</a> lsdjfasdj\xc3\xb6f ', 'important notice', " 'Daniweb forum' tcha tcha tchaa")
('bla bla blaa <a>data</a> lsdjfasdj\xc3\xb6f (important notice) ', 'Daniweb forum', ' tcha tcha tchaa')
"""
TrustyTony 888 ex-Moderator Team Colleague Featured Poster

If the left tag is not found, second and third part of tuple are '', all input string is as first part of tuple returned.

If left tag is found but right not, result has after part (third part of tuple) '', and rest of string is all in second part.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.