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 に答える