- ベストアンサー
正規表現で改行に置換するとき
英文で、一文ずつ改行させたいと考えています。 それで、ピリオド+スペースで改行するように、次のような置換を行いました。 「 \.\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.」を除いて置換することはできるでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
([^ie][^.][^eg])\.\s を $1\.\n に置換でどう? ただ、i.g.とe.e.も除外されるけどね。
その他の回答 (2)
- pppc88
- ベストアンサー率43% (40/93)
たぶん次善策です。 1. 「i.e.」と「e.g.」をその文中に出てこないで、"."を含まないユニークな単語にします。 (例えば"i.e."を"11111"、"e.g."を"22222"とする) 2. "."を所定の条件で変換します。 3. 1.の一時置換のキーワードを元に戻します。 ("11111"を"i.e."、"22222"を"e.g."とする)
補足
ありがとうございます。それも確実ですね。 やぱり、一発では無理でしょうか?
- chobby
- ベストアンサー率20% (10/48)
すみません・・・なんのソフトなのかとかがわからなかったので的外れかもしれませんが、1回置き換えたものを、「i.e.」と「e.g.」のみ改行をなくすようにさらに置き換えるのはだめでしょうか・・・? 「i\.e\.\n」⇒「i\.e\.\s」 こんな風に・・・。手間がかかりますかねー・・・。
お礼
ありがとうございます。使っているのは WZ editor で perl系の正規表現のようです。 たしかに、少なくとも二回で置換できますね。なるほど。
お礼
i.g.とe.e. はないのでこれでOKですね。ありがとうございます。