i want to replaxe the pattrn consonant o consonant, ie hoh -> h, dad -
d etc.
so i have to check that the letter after the letter i am at is o and
the next one is equal to the one i am at.
so
/qwrtpsdfghjklzxcvbnm/o/qwrtpsdfghjklzxcvbnm isnt true(and doesnt work
anyway).
From: globalrev [mailto:[email protected]]
i want to replaxe the pattrn consonant o consonant, ie hoh → h, dad -
> d etc.
so i have to check that the letter after the letter i am at is o and
the next one is equal to the one i am at.
hi globalrev,
there are many ways.
best if you can play in irb,
“hoh” =~ /(.)o\1/
#=> 0
“testhoh” =~ /(.)o\1/
#=> 4
$1
#=> “h”
if “testhoh”.match(/(.)o\1/)
“match!”
else
“sorry”
end
#=> “match!”
“qwxoxtyasdfzozghj”.gsub(/(.)o\1/) do |m|
p [m,$1,$~.pre_match,$~.post_match,$~.captures]
end
[“xox”, “x”, “qw”, “tyasdfzozghj”, [“x”]]
[“zoz”, “z”, “qwxoxtyasdf”, “ghj”, [“z”]]
#=> “qwtyasdfghj”
“qwxoxtyasdfzozghj”.gsub(/(.)o\1/) do |m|
$1
end
#=> “qwxtyasdfzghj”
“qwxoxtyasdfzozghj”.gsub(/(.)o\1/) do |m|
“<#$1>”
end
#=> “qwtyasdfghj”
“qwxoxtyasdfzozghj”.gsub(/(.)o\1/){“<#$1>”}
#=> “qwtyasdfghj”
your next task now is to determine whether a certain char is a consonant
regardless of case.
kind regards -botp
globalrev [email protected] writes:
i want to replaxe the pattrn consonant o consonant, ie hoh → h, dad -
d etc.
so i have to check that the letter after the letter i am at is o and
the next one is equal to the one i am at.
so
/qwrtpsdfghjklzxcvbnm/o/qwrtpsdfghjklzxcvbnm isnt true(and doesnt work
anyway).
You question is a bit confusing. You said you wanted to replace:
consonant o consonant
with:
consonant
Yet, one of your examples is dad, which doesn’t fit that pattern. Did
you mean “consonant vowel consonant”?
Either way, here is one possibility. I’ll leave “dad” as an exercise.
,----
| >> “hoh”.sub(/([qwrtpsdfghjklzxcvbnm])o\1/, ‘\1’)
| => “h”
`----