Home > Software design >  How to regex match list of patterns in python
How to regex match list of patterns in python

Time:12-25

I have list of patterns and I need to return that pattern if that is present in the given string else return None. I tried with the below code using re module , but I am getting only null in "matches" (when I tried to print matches). Completely new to corepython and regex,kindly help

import re
patterns_lst=['10_TEST_Comments','10_TEST_Posts','10_TEST_Likes']

def get_matching pattern(filename):
   for pattern in patterns_lst:
     matches = re.(pattern,filename)
   if matches:
      return matches
   else:
      return None

print(get_matching pattern("6179504_10_TEST_Comments_22-Nov-2021_22-Nov-2021.xlsx"))

CodePudding user response:

I have made some changes to your function:

def get_matching_pattern(filename):            ## Function name changed
    for pattern in patterns_lst:
        match = re.search(pattern, filename)   ## Use re.search method

        if match:                              ## Correct the indentation of if condition
            return match                       ## You also don't need an else statement

Output:

>>> print(get_matching_pattern("6179504_10_TEST_Comments_22-Nov-2021_22-Nov-2021.xlsx"))
<re.Match object; span=(8, 24), match='10_TEST_Comments'>
  • Related