グループ化を使用する場合、gsub を使用して Ruby の正規表現 (regex) を後方参照するにはどうすればよいですか?
概要
Webページから抽出したテキストデータにパッチを当てたいと考えています。 サンプル:
t="First sentence. Second sentence.Third sentence."
2 番目の文の終わりのポイントの後にスペースはありません。これは、元の文書では 3 番目の文が別の行 (br タグの後) にあったことを示しています。
この正規表現を使用して「」を挿入したいのですが ” 文字を適切な場所に挿入し、テキストにパッチを当てます。 私の正規表現:
t2=t.gsub(/([.\!?])([A-Z1-9])/,$1+"\n"+$2)
この正規表現を使用して「」を挿入したいのですが ” 文字を適切な場所に挿入し、テキストにパッチを当てます。 私の正規表現:
解決策
\1 を使用して置換文字列内で後方参照できます (キャプチャ グループ 1 と一致するため)。
t = "First sentence. Second sentence.Third sentence!Fourth sentence?Fifth sentence."
t.gsub(/([.!?])([A-Z1-9])/, "\\1\n\\2") # => "First sentence. Second sentence.\nThird sentence!\nFourth sentence?\nFifth sentence."