regex - Splitting a string into words and punctuation with Ruby -


i'm working in ruby , want split string , punctuation array, want consider apostrophes , hyphens parts of words. example,

s = "here...is     happy-go-lucky string i'm writing" 

should become

["here", "...", "is", "a", "happy-go-lucky", "string", "that", "i'm", "writing"]. 

the closest i've gotten still inadequate because doesn't consider hyphens , apostrophes part of word.

this closest i've gotten far:

s.scan(/\w+|\w+/).select {|x| x.match(/\s/)} 

which yields

["here", "...", "is", "a", "happy", "-", "go", "-", "lucky", "string", "that", "i", "'", "m", "writing"] 

.

you can try following:

s.scan(/[\w'-]+|[[:punct:]]+/) #=> ["here", "...", "is", "a", "happy-go-lucky", "string", "that", "i'm", "writing"] 

Comments

Popular posts from this blog

php - Admin SDK -- get information about the group -

dns - How To Use Custom Nameserver On Free Cloudflare? -

Python Error - TypeError: input expected at most 1 arguments, got 3 -