テキストの意味を消さずに整える

コピーした一覧は余分な空白や繰り返しで読みにくくなることがあります。必要な整理は具体的な問題を直すもので、すべての空白や繰り返しを誤りと決めつけるものではありません。

問題に合う操作を選ぶ

連続空白をまとめると文章は整っても、文字で組んだ表やコードの字下げを壊す場合があります。空行の削除は段落の区切りも消すため、連続した一覧にしたいときに選びます。

行の前後の空白を除く操作と、行内の空白をまとめる操作は別です。必要最小限の変更から始め、一部を原文と比べましょう。

何を重複と呼ぶのかを決める

同じ内容の2行が別々の予約や取引を表すこともあります。テーマ一覧なら1行を消せても、出席や売上の記録では適切とは限りません。

この機能は書かれた行全体を比較し、完全一致する最初の行を残します。末尾の空白や大文字・小文字の違いがあれば別の行です。

似た見た目は完全一致の証明ではない

Unicodeでは、合成済みのアクセント文字と、文字に結合記号が続く形のように、同等の文字を異なる並びで表せます。見た目が似ても文字列が完全に同じとは限りません。

この行整理機能はその表現を正規化せず、文法も直しません。記録を統合するなら先に一致条件を決め、残った違いをすべて処理ミスと考えないでください。

参考資料: Unicode Standard Annex #15 — Canonical equivalence and normalization

例:処理順によって残る行数が違う

4行を「講習会」「講習会 」(末尾に空白)「研修」「講習会」とします。完全一致の重複だけ消すと、空白付きが別の行なので3行残ります。

先に行の前後の空白を除き、その結果から重複を消すと「講習会」と「研修」が残ります。テーマをまとめる用途には向きますが、別々の予約なら見た目ではなく記録自体を変えてしまいます。

参考資料