Regex To Remove The Last Word If It Contains A Character
I need a regex in Python that will remove the last word from a string if it contains a certain character, in this case '#', and in other appearances of that character '#', only the
Solution 1:
import re
print(re.sub(r'''(?x)    # VERBOSE mode
                 [#]     # literal #
                 |       # or
                 \s*     # zero-or-more spaces
                 \w*     # zero-or-more alphanumeric characters 
                 [#]     # literal #
                 \w*     # zero-or-more alphanumeric characters 
                 $       # end of line
                 ''',
             '', # substitute matched text with an empty string
             'What a #great day #happy'))
yields
What a great day
Solution 2:
import re
s='What a #great day #happy'
# Test if the last word has a '#'
if re.match('#',s.rsplit(' ', 1)[1]):
    # Deal with everything but last word and do replacement         
    print re.sub('#', '',s.rsplit(' ', 1)[0])  
else:
    # Else replace all '#' 
    print re.sub('#', '',s) 
>>> What a great day
Post a Comment for "Regex To Remove The Last Word If It Contains A Character"