Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

split string with certain condition

I am learning python by watching YouTube video (my hobbie is to learn coding, My age is around 50 years)

I am not getting enough time to learn continuously, but whenever i got time trying to learn, I created one project for learning python, I am stack with if else condition, I am having one file 1.txt in that file my string is like this:

0100100010110100011100111010110111000110110101001011101101110111001010010001

before i was splitting my string string with simple way like separating 10 in 1 0. so my string become

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

01 001 0001 011 01 000111 00111 01 011 0111 00011 011 01 01 001 0111 011 0111 0111 001 01 001 0001

But Now i Want to split my string in such way that (if it’s start with 0 so end will also come last 0 and if it start with 1 it’s end will be on last 1. after spliting my string will be like this:

0100 10001 0110 1000111 001110 1011 0111000 11011 010 1001 01110 110111 011100 101 001000 1 

as per my little knowledge, it should be seapreta by ‘if else’ condition, but how i could apply on it, can someone will guide me to do the same.

what I was doing for my first operation my code is.

my_data = open("1.txt", "rt")
data = my_data.read()

data = data.replace('10', '1 0')

my_data.close()
my_data = open("2.txt", "wt")
my_data.write(data)
my_data.close()

>Solution :

You can use the regex pattern

((?:0+1+0+)|(?:1+0+1+))

For example

import re
test_str = "0100100010110100011100111010110111000110110101001011101101110111001010010001"
regex = r"((?:0+1+0+)|(?:1+0+1+))"
subst = "\\1 "
result = re.sub(regex, subst, test_str, 0, re.MULTILINE)
print (result)

Returns

0100 10001 0110 1000111 001110 1011 0111000 11011 010 1001 01110 110111 011100 101 001000 1

Test on Online Python here

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading