純粋に見た目の理由で改行(段落区切り)が追加されたWord文書がいくつかあります(おそらく人間によるものですが、OCRシステムなどによるものかもしれません)。これらの余分な改行をドキュメントから削除したいと思います。基本的に、「余分な」改行は、両側が小文字で囲まれている改行です(オプションの空白を使用)。残念ながら、Word(^ p)で段落の区切りを検索したい場合は、文字クラスを使用して小文字([a-z])のみを検索することはできません。その逆も同様です。
基本的に、ドキュメントで複数行の正規表現を使用して、次のようなものを見つけたいと思います。
/[a-z]\s*\n\s*[a-z]/
改行をスペースに置き換えます。段落記号(Wordでは^ p)と文字クラス(または一般的には小文字)の両方を検索する方法はありますか?
例:
題名¶
これはいくつかのテキストです。
一致しませんが
このテキストは1行にあり、¶
次の行に進みます。
一致し、「¶」はスペースに置き換えられます。
Microsoft Wordの[検索して置換]ダイアログボックスで[More >>
]をクリックすると、[検索オプション]パネルに[使用]が表示されることをご存知かどうかはわかりません。ワイルドカード」オプション。正規表現表記ではなく、難解なワイルドカード言語をサポートしていることに注意してください。このオプションを開始するには、[a-z]^13[a-z]
を使用します。何らかの理由で、ワイルドカード検索で^p
を使用することはできませんが、^13
はワイルドカード対応の^p
に相当します。
空白は少し注意が必要です。私が思いつくことができる最善のことは、を使用して検索を4回実行する必要があることです。
[a-z]^13[a-z]
[a-z][^t ]{1,99}^13[a-z]
[a-z]^13[^t ]{1,99}[a-z]
、および[a-z][^t ]{1,99}^13[^t ]{1,99}[a-z]
奇妙なことに、^t
はワイルドカードモードで機能するためです。 \s
および*
は、正規表現での意味を意味するものではありません。 {n,m}
does動作しますが、n
は正である必要があります。また、前の最後の文字と次の最初の文字が一致に含まれているため、一致をスペースに置き換えることはできず、混乱することに注意してください。
追加のクレジットの場合:改行の前の最後の印刷文字として-
(ハイフン)を探すことをお勧めします。ただし、次の2つの(異なる)ケースに必ず対処してください。
…下に囲まれている-¶
両側の大文字(オプションの空白付き)。 Unfor-¶
しかし、幸いなことに…
^13
は、ワイルドカード対応の^p
に相当します。
これはほぼ真実ですが、^13
と^p
の間にはわずかな違いがあることに注意してください。段落区切りを^13
に置き換えると、Wordの通常の段落区切りで得られる2倍のスペースが失われるようです。
first paragraph¶
second paragraph¶
third paragraph¶
になります
first paragraph¶
second paragraph¶
third paragraph¶
これを解決するには、検索と置換ダイアログの置換部分で必ず^p
段落記号を使用してください。ワイルドカードを使用した^p
の制限は、ダイアログの検索部分にのみ適用されます。