[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Regex: how to match duplicate syllables?

basi

12/25/2005 3:23:00 AM

Merry Christmas!

But work goes on :(

Just trying a way to match duplicate syllables.

C = "bcdfghjklmnpqrstvwxyz"
V = "aeiou"

aString =~ /[#{C}][#{V}][#{C}][#{V}]/

should match if the first CV matches the next CV. Hence, "waikiki"
should match on "kiki". And "dodo", "paparazzi" should match too.

Thanks!
basi

3 Answers

James Gray

12/25/2005 4:01:00 AM

0

On Dec 24, 2005, at 9:27 PM, basi wrote:

> Merry Christmas!

Back at ya. ;)

> But work goes on :(

<laughs>

> Just trying a way to match duplicate syllables.
>
> C = "bcdfghjklmnpqrstvwxyz"
> V = "aeiou"
>
> aString =~ /[#{C}][#{V}][#{C}][#{V}]/
>
> should match if the first CV matches the next CV. Hence, "waikiki"
> should match on "kiki". And "dodo", "paparazzi" should match too.

Hope this helps:

>> V = "aeiou".freeze
=> "aeiou"
>> C = ("a".."z").to_a.join.gsub(/[#{V}]/, "").freeze
=> "bcdfghjklmnpqrstvwxyz"
>> DBL_SYL = /([#{C}][#{V}])\1/.freeze
=> /([bcdfghjklmnpqrstvwxyz][aeiou])\1/
>> %w{waikiki dodo paparazzi}.each do |test|
?> puts "#{test} => #{$&}" if test =~ DBL_SYL
>> end
waikiki => kiki
dodo => dodo
paparazzi => papa
=> ["waikiki", "dodo", "paparazzi"]

James Edward Gray II



Mike Stok

12/25/2005 4:07:00 AM

0


On 24-Dec-05, at 10:27 PM, basi wrote:

> Merry Christmas!
>
> But work goes on :(
>
> Just trying a way to match duplicate syllables.
>
> C = "bcdfghjklmnpqrstvwxyz"
> V = "aeiou"
>
> aString =~ /[#{C}][#{V}][#{C}][#{V}]/
>
> should match if the first CV matches the next CV. Hence, "waikiki"
> should match on "kiki". And "dodo", "paparazzi" should match too.

What about using \1 e.g.

C = "bcdfghjklmnpqrstvwxyz"
V = "aeiou"

%w{ kiki dodo paparazzi abacab }.each do |word|
puts "#{word} matched" if word =~ /([#{C}][#{V}])\1/
end

Hope this helps,

Mike

--

Mike Stok <mike@stok.co.uk>
http://www.stok.co...

The "`Stok' disclaimers" apply.






basi

12/25/2005 4:32:00 AM

0

Thanks to James and Mike. Both suggestions work!

Happy holidays!
basi