正規表現を欲張らない
全部一発で処理しようとするととんでもなく複雑な正規表現になったり、正規表現の範疇を超えることがある 段階に分けて処理するようにすると正規表現は単純になるし、処理も早くなる(かも)
Aという文字列をBに置換する。ただしCは除くみたいなものは、一気にやるよりも分けたほうがいい
カタカナの塊と漢字の塊をカッコで括る
/([一-龍々ァ-ヴ]+)/ を 〈$1〉 に置き換える
ソビエト→〈ソビエト〉
連邦→〈連邦〉
ソビエト連邦→〈ソビエト〉〈連邦〉
ただし、ソ連が〈ソ〉〈連〉になるのは嫌なので、〈ソ連〉に置換し直す
〈ソ〉〈連〉→〈ソ連〉
独ソが〈独〉〈ソ〉になるのも嫌なので〈独ソ〉に置換し直す
〈独〉〈ソ〉→〈独ソ〉