Picking piece of string between separators


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

About the Author

IT Pro doing Eng-Fin-Eng translations

# 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 pyMod 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 1.20 million developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.