0

我认为这很简单,但我是正则表达式的新手,我无法解决。

我想将一个单词作为字符串,例如“temple”、“quiet”或“square”,并在元音之前找到所有开头的辅音,但如果它跟在“q”之后,则包括一个“u”。

我可以很好地找到所有开头的辅音(没有'qu'规则):

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

tr正如预期的那样,这将返回。

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

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

但这根本没有帮助。有人可以启发我吗?

4

2 回答 2

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"
于 2013-01-17T22:28:57.613 回答
0

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

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

然而,这样的“词”可能不存在于任何已知的语言中(可能除了克林贡语)。

于 2013-01-17T22:29:09.820 回答