タグ

正規表現とrubyに関するnbqx69のブックマーク (2)

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

    nbqx69
    nbqx69 2006/03/09
    次期Rubyに採用される予定の正規表現ライブラリ鬼車
  • Rubyのある風景 - Regexp Lookahead

    正規表現の中でも影の薄い先読みですが、使いようによっては非常に強力な道具になります。 数字を三桁ごとに区切ってコンマを挿入したい場合を考えましょう。 例えば"1234567890"という文字列を"1,234,567,890"に置換したいわけですね。 結論から言うと、これを行うには以下のようにします。 text = "1234567890" puts text.gsub(/(\d)(?=(\d\d\d)+(?!\d))/, '\1,') おそらく訳が分からないと思いますので、順を追って説明していきましょう。 まずおさえておいてほしいことは「先読みは文字列がマッチしているかどうかは調べるけれども、マッチポインタは進めない」ということです。 もし上の例で、先読みを用いずにtext.gsub(/(\d)(\d\d\d)+/, '\1,')と置換しようとしたとしましょう。 すると、最初の(\d)が"

    nbqx69
    nbqx69 2006/02/08
    (?=)(先読み)、(?!)(否定先読み)
  • 1