正则表达式找到辅音和任何' u'在' q'之后(在Ruby中)

时间:2013-01-17 22:22:30

标签: ruby regex

我认为这很简单,但我对正则表达式不熟悉而且我无法解决这个问题。

我想把一个单词作为字符串,如“temple”,“quiet”或“square”,并在元音之前找到所有开始的辅音,但如果它跟在'q'之后包括'u'。< / p>

我有这个工作正常,找到所有的开始辅音(没有'qu'规则):

s = 'trouble'
s.match(/\b[bcdfghjklmnpqrstvwxyz]+/) # I assume I could replace '\b' with '^'

按预期返回tr

要添加'qu'的功能,我想我可以这样做:

/\b([bcdfghjklmnprstvwxyz]|qu)+/

但这根本没有用。有人可以赐教我吗?

2 个答案:

答案 0 :(得分:0)

嗯,对我有用:

def beg_con(str)
  m = str.match(/\b([bcdfghjklmnprstvwxyz]|qu)+/)
  m ? m[0] : nil
end
beg_con('trouble') # => "tr"
beg_con('quiet')   # => "qu"
beg_con('square')  # => "squ"

答案 1 :(得分:0)

如果您想匹配以多个 q 开头的单词:

^(?:[bcdfghjklmnprstvwxyz]|qu?)+)

但是,这些“单词”可能不存在于任何已知语言中(可能除了克林贡语)。