Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I insert a space after and before a dash that is not already surrounded by spaces?

Let's say I have these strings:

string1= "Queen -Bohemian Rhapsody"

string2= "Queen-Bohemian Rhapsody"

string3= "Queen- Bohemian Rhapsody"

I want all of them to become to be like this:

   string1= "Queen - Bohemian Rhapsody"
   string2= "Queen - Bohemian Rhapsody"
   string3= "Queen - Bohemian Rhapsody"

How can I do this in Python?

Thanks!

like image 594
itailitai Avatar asked Dec 24 '22 01:12

itailitai


1 Answers

You can regexp:

import re
pat = re.compile(r"\s?-\s?") # \s? matches 0 or 1 occurenece of white space

# re.sub replaces the pattern in string
string1 = re.sub(pat, " - ", string1)
string2 = re.sub(pat, " - ", string2)
string3 = re.sub(pat, " - ", string3)
like image 91
lycuid Avatar answered May 25 '23 06:05

lycuid