FahdS
FahdS

Reputation: 59

Splitting words before and after '/' in using Regex

Have the following string:

text = 'interesting/practical/useful'

I need to split it like interesting / practical / useful using Regex.

I'm trying this

newText = re.sub(r'[a-zA-Z](/)[a-zA-Z]', ' \g<0> ', text)

but it returns

interestin g/p ractica l/u seful

P.S. I have other texts in the Corpus that also have forward slashes that shouldn't be altered due to this operation, which is my I'm looking for regex patterns specifically with characters before and after the '/'.

Upvotes: 0

Views: 721

Answers (2)

Yuri Khristich
Yuri Khristich

Reputation: 14537

I'm used to do it this way:

newText = re.sub(r'([a-zA-Z])/([a-zA-Z])', '\1 / \2', text)

\1 and \2 are the references on the first and second founded expressions in the brakets ()

In plain English it means: look for any letter, a slash, a letter and change them with the founded letter, a space, a slash, a space and the second founded letter.

Upvotes: 1

Barmar
Barmar

Reputation: 781888

Use lookarounds for the letters before and after the /, so they're not included in the match.

newText = re.sub(r'(?<=[a-zA-Z])/(?=[a-zA-Z])', ' \g<0> ', text)

Upvotes: 3

Related Questions