2

I have this problem:

list_= ["blabla S.P.A words J.R words. , words","words words !! words s.r.l words. D.T. words","words words I.B.M. words words."]

I would like to have:

['S.P.A', 'J.R']
['s.r.l', 'D.T.']
['I.B.M.']

I found this amazing solution Finding Acronyms Using Regex In Python that returns:

['S.P.', 'J.']
['s.r.', 'D.T.']
['I.B.M.']

How can I use that solution in my situation?

Thank you

1 Answers1

3

You just need to make the final period optional. Also lookbehind for a space or the start of the string before the first letter to ensure it's not part of another word, and lookahead after the end for a space or the end of the string:

pattern = r'(?i)(?:^|(?<= ))(?:[a-z]\.)+[a-z]\.?(?= |$)'
CertainPerformance
  • 356,069
  • 52
  • 309
  • 320