• ベストアンサー

正規表現で改行に置換するとき

英文で、一文ずつ改行させたいと考えています。 それで、ピリオド+スペースで改行するように、次のような置換を行いました。 「 \.\s 」→「 \.\n 」 その結果、 This is a pen. That is a pencil. ↓↓ This is a pen. That is a pencil. のような場合はOKです。 しかし、「i.e. (つまり)」「e.g.(例えば)」が文中にあると困ったことになります。 I'm John, i.e. the president of the US.  ↓↓ I'm John, i.e. the president of the US. 質問) 「i.e.」と「e.g.」を除いて置換することはできるでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

([^ie][^.][^eg])\.\s を $1\.\n に置換でどう? ただ、i.g.とe.e.も除外されるけどね。

white-tiger
質問者

お礼

i.g.とe.e. はないのでこれでOKですね。ありがとうございます。

その他の回答 (2)

  • pppc88
  • ベストアンサー率43% (40/93)
回答No.2

たぶん次善策です。 1. 「i.e.」と「e.g.」をその文中に出てこないで、"."を含まないユニークな単語にします。 (例えば"i.e."を"11111"、"e.g."を"22222"とする) 2. "."を所定の条件で変換します。 3. 1.の一時置換のキーワードを元に戻します。 ("11111"を"i.e."、"22222"を"e.g."とする)

white-tiger
質問者

補足

ありがとうございます。それも確実ですね。 やぱり、一発では無理でしょうか?

  • chobby
  • ベストアンサー率20% (10/48)
回答No.1

すみません・・・なんのソフトなのかとかがわからなかったので的外れかもしれませんが、1回置き換えたものを、「i.e.」と「e.g.」のみ改行をなくすようにさらに置き換えるのはだめでしょうか・・・? 「i\.e\.\n」⇒「i\.e\.\s」 こんな風に・・・。手間がかかりますかねー・・・。

white-tiger
質問者

お礼

ありがとうございます。使っているのは WZ editor で perl系の正規表現のようです。 たしかに、少なくとも二回で置換できますね。なるほど。

関連するQ&A