2011-08-05 9 views
1

EDIT申し訳ありませんが、私の質問は問題ではないことに気付きました。 Markdownは改行文字を消費しました。それにもかかわらず、私のコードにはまだ問題があり、答えが正しい解決策を提供します。行末のテキストを置き換えて改行文字を保存

私はRubyを使用しています。私はID番号をいくつかの行の最後で見つけてURLに変換したいと考えています。例

>253 
irrelevant text 
>254 

> foo.php/253 
irrelevant text 
> foo.php/254 

に、私は次のようなものを試してみましたが、改行/キャリッジリターンが消費されます。

text.gsub!( /^(> ?)(\d+)(\s*$)/ , "\\1\\2\\3" ) 

結果はすべて1行になります。/r、/ n、/ r/nになるかどうかも分かりませんので、改行文字をハードコードしたくありません。

答えて

1

これは動作するはずです:

text.gsub(/(?:^|(?<=[\r\n]))>[ \t]*(\d+)(?=\s*?(?:$|[\r\n]))/m, "> foo.php/\\1") 

例:http://ideone.com/fgAK7

更新:この1つは、より良い(短い)である:

/(?<![^\r\n])>[ \t]*(\d+)[ \t]*(?![^\r\n])/ 
関連する問題