2009-07-23 27 views
2

私は文字列が気に入っているのは、次のとおりです。非貪欲先読み

val:key 

私は/^\w*/と「val」をキャプチャすることができます。

「キー」をに設定するにはどうすればいいですか? ':'記号はありますか?

ありがとうございました

+1

使用言語によっては、文字列を分割するためのsplit()コマンドが必要です。ちょうど ":"に分割し、最後の要素を取得します。正規表現は必要ありません。 – ghostdog74

+0

私は最も簡単な解決策がありませんでした!ちなみに、キーには ':'が含まれている可能性があります。 – pistacchio

+1

最初のコロンで分割したいだけですか? 'split(/:/ $ text、2)' –

答えて

4

どうやってですか?

/^(\w+):(\w+)$/ 

それとも、単にコロンの後にすべてのものをキャプチャしたい場合:

/:(.+)/ 

はここでコロンを確保するために、後読みアサーションを使用してあまり明確な例だが試合前に発生した - 全体の試合は含まれませんその結腸。その後、文字列

+0

私は別の正規表現でそれをキャプチャしたいと思いますが、/ :(。*)/はまだ ':' – pistacchio

+0

をキャプチャしていますが、かっこはサブミッチを抽出させます –

0
/\:(\w*)/ 

? /:(.*)/ないのキャプチャ ":" しかし、それがない試合 ':' Perlで

は、あなたが言う場合:

$text =~ /\:(.*)/; 
$capture = $1; 
$match = $&; 

はその後$キャプチャが勝った

」 ":"と$は一致します。 (ただし、$ &を使用することは避けてください。Perlの速度が落ちるので、これは試合を説明するためのものです)。

1

あなたはどのような言語を使用しているの終わりまで、それの後に、すべての単語の文字をキャプチャ:探し

/(?<=:).*/ 
1

これは、グループ1のキーとグループ2の値を取得します。値がコロン(:)文字である場合でも正しく動作するはずです。

^(\w+?):(.*)