a simple command that splits up a string into numbers and letters

S

shawn bright

[Note: parts of this message were removed to make it a legal post.]

Hey all,

i am looking for an easy way to split a string into letters and numbers.
so if i had a string '34JKBY103' i could get ['34', 'JKBY', '103']

I could write up something, but thought that if there was already something
out there that i hav'nt found, it would probably be cleaner.
thanks

sk
 
R

Rob Biedenharn

Hey all,

i am looking for an easy way to split a string into letters and
numbers.
so if i had a string '34JKBY103' i could get ['34', 'JKBY', '103']

I could write up something, but thought that if there was already
something
out there that i hav'nt found, it would probably be cleaner.
thanks

sk



irb> '34JKBY103'.scan(/\d+|\D+/)
=> ["34", "JKBY", "103"]

that looks like an easy way ;-)

-Rob

Rob Biedenharn http://agileconsultingllc.com
(e-mail address removed)
 
T

Tim Greer

shawn said:
[Note: parts of this message were removed to make it a legal post.]

Hey all,

i am looking for an easy way to split a string into letters and
numbers. so if i had a string '34JKBY103' i could get ['34', 'JKBY',
'103']

I could write up something, but thought that if there was already
something out there that i hav'nt found, it would probably be cleaner.
thanks

sk

I don't know if there's anything out there now (there might be), but it
seems pretty simple. Just split on either \d+ or \D+, depending
(unless I'm missing something in your requirement)?
 
S

shawn bright

[Note: parts of this message were removed to make it a legal post.]

sorry, how do i split on a \d+ ?
sk

shawn said:
[Note: parts of this message were removed to make it a legal post.]

Hey all,

i am looking for an easy way to split a string into letters and
numbers. so if i had a string '34JKBY103' i could get ['34', 'JKBY',
'103']

I could write up something, but thought that if there was already
something out there that i hav'nt found, it would probably be cleaner.
thanks

sk

I don't know if there's anything out there now (there might be), but it
seems pretty simple. Just split on either \d+ or \D+, depending
(unless I'm missing something in your requirement)?
--
Tim Greer, CEO/Founder/CTO, BurlyHost.com, Inc.
Shared Hosting, Reseller Hosting, Dedicated & Semi-Dedicated servers
and Custom Hosting. 24/7 support, 30 day guarantee, secure servers.
Industry's most experienced staff! -- Web Hosting With Muscle!
 
T

Tim Greer

shawn said:
[Note: parts of this message were removed to make it a legal post.]

sorry, how do i split on a \d+ ?
sk

shawn said:
[Note: parts of this message were removed to make it a legal
[post.]

Hey all,

i am looking for an easy way to split a string into letters and
numbers. so if i had a string '34JKBY103' i could get ['34',
'JKBY', '103']

I could write up something, but thought that if there was already
something out there that i hav'nt found, it would probably be
cleaner. thanks

sk

I don't know if there's anything out there now (there might be), but
it
seems pretty simple. Just split on either \d+ or \D+, depending
(unless I'm missing something in your requirement)?
<please don't quote signatures>

Someone posted this already, but:

irb(main):010:0> s = "34JKBY103"
=> "34JKBY103"
irb(main):011:0> s.scan(/\d+|\D+/)
=> ["34", "JKBY", "103"]
irb(main):012:0>
 
T

Tim Greer

Tim said:
shawn said:
[Note: parts of this message were removed to make it a legal post.]

sorry, how do i split on a \d+ ?
sk

shawn bright wrote:

[Note: parts of this message were removed to make it a legal
[post.]

Hey all,

i am looking for an easy way to split a string into letters and
numbers. so if i had a string '34JKBY103' i could get ['34',
'JKBY', '103']

I could write up something, but thought that if there was already
something out there that i hav'nt found, it would probably be
cleaner. thanks

sk

I don't know if there's anything out there now (there might be), but
it
seems pretty simple. Just split on either \d+ or \D+, depending
(unless I'm missing something in your requirement)?
<please don't quote signatures>

Someone posted this already, but:

irb(main):010:0> s = "34JKBY103"
=> "34JKBY103"
irb(main):011:0> s.scan(/\d+|\D+/)
=> ["34", "JKBY", "103"]
irb(main):012:0>


Also, remember, there are several ways to do this. You can use an
actual split() function with a regular expression.

See: http://www.ruby-doc.org/core/classes/String.html
 
S

shawn bright

[Note: parts of this message were removed to make it a legal post.]

way cool, thanks, all
-sk
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,982
Messages
2,570,189
Members
46,735
Latest member
HikmatRamazanov

Latest Threads

Top