Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

RegExp: Split string alphanumeric / numeric

can you help me to split a string (or preferred if possible, place a blank at every "split" occasion) after every change from alphanumeric to numeric and vice versa ?

So a string like D2c1 22 should look like D 2 c 1 22. Best way from would be to put a blank at every change from alpha-numeric to numeric.

like image 380
calimero Avatar asked Jul 04 '26 10:07

calimero


1 Answers

You can use this regexp to find the places where it switches:

(?<=\d)(?=\D)|(?<=\D)(?=\d)

This way:

"234kjh23ljkgh34klj2345klj".gsub(/(?<=\d)(?=\D)|(?<=\D)(?=\d)/, " ")
=> "234 kjh 23 ljkgh 34 klj 2345 klj"

Edit: Without zero length look ahead and look behind:

"234kjh23ljkgh34klj2345klj".gsub(/(\d)(\D)/, "#{$1} #{$2}").gsub(/(\D)(\d)/, "#{$2} #{$1}")
=> "23 jk 5 jkgk 5 lk 534 lj"
like image 61
davidrac Avatar answered Jul 07 '26 10:07

davidrac



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!