How to do this regex substitution?

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”
`----