I want to split a string "Kushak Road Main Road Teen Murti Marg X Area" after given set of words like ['path', 'marg', 'road', 'rd']such that I will get an output like ['Kushak Road', 'Main Road', 'Teen Murti Marg']. The words in the list are case insensitive.
I tried following:
re.split(r"\broad|marg\b", "Kushak Road Main Road Teen Murti Marg X Area", flags = re.IGNORECASE)
Output:
['Kushak ', ' Main ', ' Teen Murti ', ' X Area']
>Solution :
I would not use split for this, but instead findall, looking for strings that start with a non-whitespace character and finish with road or marg:
re.findall(r'\S.*?\b(?:road|marg)\b', "Kushak Road Main Road Teen Murti Marg X Area", re.I)
Output:
['Kushak Road', 'Main Road', 'Teen Murti Marg']