Re.match() returns always none

re.match is implicitly anchored to the start of the string. If you want to search a string for a substring that can be anywhere within it, then you need to use re.search:

import re

a = " ebrj wjrbw erjwek wekjb rjERJK ABB RAEJKE BWE RWEJBEWJ B KREWBJ BWERBJ32J3B23B J BJ235JK BJJ523 2"

print re.search(ur'(wekjb|ABB)',a).group()
if re.search(ur'(wekjb|ABB)',a):
    print 'success'

Output:

wekjb
success

Also, Python Regexes do not need to have a / at the start and end.

Lastly, I added .group() to the end of the print line because I think this is what you want. Otherwise, you’d get something like <_sre.SRE_Match object at 0x01812220>, which isn’t too useful.

Leave a Comment