«前の日記(2007-09-21) 最新 次の日記(2007-10-05)» 編集

ソフトウェアと本の覚え書き

2005|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|

2007-09-27 [長年日記]

_ [プログラミング] Ruby 正規表現の行末

以下のようにファイルを一行ずつ読み込み、正規表現に「$」を使おうとしたが、予想に反しなぜかマッチしなくてしばらくはまった。

File.open(filename, 'r'){ |f|
  while l = f.gets
    if l =~ /^<LI>.*<\/LI>$/
      puts l
    end
  end
}

原因は文字列の最後に改行があったことだったので、次のように変更した。

File.open(filename, 'r'){ |f|
  while l = f.gets.strip
    if l =~ /^<LI>.*<\/LI>$/
      puts l
    end
  end
}