3

自分でそれを理解しようとして、これに少し取り組んでいます。
Blah abc:def lah:123!dfj blah:22:34
基本的に、ユーザー入力を取得しています。これは、次のようなキーワード/値構造を持つことができます:
('abc', 'def', 'lah':'123!dfj', 'blah':'22:34')

現在、私は を持っていますが(.[^: ]+):(.[^ ]+)、それは最初の値しか取得していません。ここで明らかな何かが欠けていますか?

4

1 に答える 1

3

一連の括弧が複数の一致を返す方法があるため、正規表現から複数のペアを取得することは期待できません。(文字列に一致する)のようなことをしても(([^:]+):([^ ]+) ?)*、括弧の内側のセットは1つの一致(最後のもの)のみを返します。

より多くのペアを取得したい場合は、正規表現を変更して行うのではなく、scanRuby のように、正規表現を複数回適用してすべての一致を見つける関数を使用して行います。

于 2012-10-11T01:25:30.600 に答える