Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > The easiest way to separate substrings from a line string

Reply
Thread Tools

The easiest way to separate substrings from a line string

 
 
Sarawut Poaitwinyu
Guest
Posts: n/a
 
      07-09-2009
I have working on tag system and There is information like this

"important urgent project 2009"

i want to seperate into word, one word at the time is okay

What is the easiest way to separate those string word by word, space
between each word might has more than 1.

My idea is to use loop to check character by character that it is space
or not, and then cut the part, but i thought it might have easier way
that i don't know

Thank you in advance
--
Posted via http://www.ruby-forum.com/.

 
Reply With Quote
 
 
 
 
David A. Black
Guest
Posts: n/a
 
      07-09-2009
Hi --

On Thu, 9 Jul 2009, Sarawut Poaitwinyu wrote:

> I have working on tag system and There is information like this
>
> "important urgent project 2009"
>
> i want to seperate into word, one word at the time is okay
>
> What is the easiest way to separate those string word by word, space
> between each word might has more than 1.
>
> My idea is to use loop to check character by character that it is space
> or not, and then cut the part, but i thought it might have easier way
> that i don't know


words = string.split

When you call split with no argument, it splits on whitespace
(including more than one character).


David

--
David A. Black / Ruby Power and Light, LLC
Ruby/Rails consulting & training: http://www.rubypal.com
Now available: The Well-Grounded Rubyist (http://manning.com/black2)
Training! Intro to Ruby, with Black & Kastner, September 14-17
(More info: http://rubyurl.com/vmzN)

 
Reply With Quote
 
 
 
 
Thriving K.
Guest
Posts: n/a
 
      07-09-2009
David A. Black wrote:
> Hi --
>
> On Thu, 9 Jul 2009, Sarawut Poaitwinyu wrote:
>
>> or not, and then cut the part, but i thought it might have easier way
>> that i don't know

>
> words = string.split
>
> When you call split with no argument, it splits on whitespace
> (including more than one character).
>
>
> David




Thank you , i will try
--
Posted via http://www.ruby-forum.com/.

 
Reply With Quote
 
Robert Klemme
Guest
Posts: n/a
 
      07-09-2009
2009/7/9 David A. Black <(E-Mail Removed)>:
> Hi --
>
> On Thu, 9 Jul 2009, Sarawut Poaitwinyu wrote:
>
>> I have working on tag system and There is information like this
>>
>> "important urgent project 2009"
>>
>> i want to seperate into word, one word at the time is okay
>>
>> What is the easiest way to separate those string word by word, space
>> between each word might has more than 1.
>>
>> My idea is to use loop to check character by character that it is space
>> or not, and then cut the part, but i thought it might have easier way
>> that i don't know

>
> =A0words =3D string.split
>
> When you call split with no argument, it splits on whitespace
> (including more than one character).


I am more like the "positive" guy - meaning explicitly defining what I
want returned. I would do

words =3D string.scan /\w+/

That way dot, question mark and other signs won't hurt. It may not
make a difference but it's probably good to see different approaches.

Kind regards

robert


--=20
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/

 
Reply With Quote
 
Robert Klemme
Guest
Posts: n/a
 
      07-09-2009
2009/7/9 David A. Black <(E-Mail Removed)>:
> On Fri, 10 Jul 2009, Robert Klemme wrote:
>> 2009/7/9 David A. Black <(E-Mail Removed)>:
>>> On Thu, 9 Jul 2009, Sarawut Poaitwinyu wrote:


>>> =A0words =3D string.split
>>>
>>> When you call split with no argument, it splits on whitespace
>>> (including more than one character).

>>
>> I am more like the "positive" guy - meaning explicitly defining what I
>> want returned. =A0I would do
>>
>> words =3D string.scan /\w+/
>>
>> That way dot, question mark and other signs won't hurt. =A0It may not
>> make a difference but it's probably good to see different approaches.

>
> string.split does explicitly define what I want back; it's just
> something different from what you want back


That's true. I just wanted to make the point that there are these two
major approaches: define positively what you want in your result or
define it ex negativo, i.e. state what you want to use as separator.

The whole point is that both approaches may behave identical with the
original set of test data but will exhibit different behavior as soon
as the input changes. If you use #split, you might get something you
did not want in the first place. With #scan you won't notice - which
could be bad as well.

The super safe variant would be to first do a match on the whole
string to ensure it does contain expected data only and fail if not.
After that it does not matter any more what extraction method one
uses.

> It depends exactly how
> you define "word". I was assuming it was /\S+/ but it may indeed be
> /\w+/ (or maybe /[^\W\d_]+/ or something).


Absolutely.

Kind regards

robert

--=20
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/

 
Reply With Quote
 
Thriving K.
Guest
Posts: n/a
 
      07-13-2009
Thank you for everyone again, it seems that you guys discussed sort of
regular expression that i didn't understand but thank you for it anyone,
i will try to research about it later
--
Posted via http://www.ruby-forum.com/.

 
Reply With Quote
 
Dave Burt
Guest
Posts: n/a
 
      07-13-2009
Moving off-topic from the thread, but David Black wrote:
> ... /\w+/ (or maybe /[^\W\d_]+/ or something).


Do people actually say /[^\W\d_]/ instead of /[a-z]/i? The latter is
much easier for me to read. Does the former include non-latin
word-characters?

Cheers,
Dave Burt

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Separate Tabs, Separate Sessions BigAndy Firefox 0 05-09-2007 09:26 AM
Using separate classpaths for separate classes? Frank Fredstone Java 1 06-27-2006 06:46 AM
Replacing palindrome substrings of an input string with a given string Tung Chau C Programming 1 08-06-2004 07:27 PM
Replacing palindrome substrings of an input string with a given string. Any effecient algorithm? Tung Chau C Programming 0 08-06-2004 10:18 AM
How to use several separate classes (separate files) to be executed in one class (another file) EvgueniB Java 1 12-15-2003 01:18 AM



Advertisments