How to add space before and after specific character using regex in Python? -


i have sentence: transportumum min kalo dari kota|tua | mau ke galeri nasional naik transjakarta jurusan apa ya?

as see there 2 pipe character in sentence, add space before , after pipe if in middle of word without space. eg: kota|tua kota | tua

this code far:

def puncnorm(text):     pat = re.compile(r"\d([|:])\d")     text = pat.sub(" \\1 ", text)     return text  text = "transportumum min kalo dari kota|tua | mau ke galeri nasional naik transjakarta jurusan apa ya?"  text = puncnorm(text) 

the result add space every pipe character. there double space in tua | mau:

transportumum min kalo dari kota | tua  |  mau ke galeri nasional naik transjakarta jurusan apa ya? 

my expected result is:

transportumum min kalo dari kota | tua | mau ke galeri nasional naik transjakarta jurusan apa ya? 

what best way solve this?

the \d pattern matches char other digit. may use word boundary here make symbols match when inside word:

r'\b([|:])\b' 

see regex demo

note may rid of (...) need replace whole match. backreference whole match \g<0> in python.

see python demo:

import re rx = r'\b[|:]\b' s = "transportumum min kalo dari kota|tua | mau ke galeri nasional naik transjakarta jurusan apa ya?" print(re.sub(rx, ' \g<0> ', s)) # => transportumum min kalo dari kota | tua | mau ke galeri nasional naik transjakarta jurusan apa ya? 

Comments

Popular posts from this blog

Is there a better way to structure post methods in Class Based Views -

performance - Why is XCHG reg, reg a 3 micro-op instruction on modern Intel architectures? -

jquery - Responsive Navbar with Sub Navbar -