2011-02-12 12 views
0

与えられたテキストREGEXのように再び一致する複数の行

は、ここで私がしようとしているが、それは失敗しているものです:

^Boss:.*$^Date:.*$ 

提案?ありがとう

+4

なぜ正規表現を使用して行う必要がありますか?ちょうど改行で分割。 –

+2

+1 @Matt Ball、正規表現のハンマーで打つ必要があるように、すべてが見えるのはなぜですか? –

答えて

2

最初のx行をスキップする必要があるかもしれません...またアンカー^はおそらくあなたが一致しない原因になります。

あなたのファイルは、GBの範囲でサイズの

ruby -e 'a=File.read("file"); p a.split(/\n/)[-3..-1] ' 
0

を試してみては、ゼロ幅アサーションです。彼らは、何らかの文字を消費することなく、ある条件が成り立つと主張する。

  • ^は、現在の位置が入力の始まりであるか、直前に行区切り文字があることを意味します。
  • $は、現在の位置が入力の終わりであるか、直後に行区切り文字が続くことを意味します。

しかし、それらのどちらも行区切りを消費するので、$^が一致することはできません。 [\r\n]+は、1つ以上の改行または改行をマッチ(および消費)するので、最も一般的な3種類の行区切り文字:\r(旧Mac標準)、\r\n(Windows /ネットワーク標準)、\n(Unix/Linux/Mac OS X /他のほとんどすべて)。

2
^Boss:.*[\r\n]+Date:.*$ 

されていない場合^$、ラインアンカー

(?:.*[\r\n]*)*Boss:.*(?:.*[\r\n]*)Date:.* 
関連する問題