MicrosoftWordでの検索と置換の正規表現
国名から先頭と末尾のタグを削除したい。
私の例では、これらのタグは<li>
および<a>
。
<li><a href="http://afghanistan.makaan.com/">Afghanistan</a></li>
<li><a href="http://albanie.makaan.com/">Albanie</a></li>
<li><a href="http://algérie.makaan.com/">Algérie</a></li>
結果は次のようになります。
Afghanistan
Albanie
Algérie
Microsoft Wordでは、検索と置換機能を使用して正規表現でそれを実現したいと思います。
MS Wordで正規表現を使用するにはどうすればよいですか?
入力テキストをWordにコピーする代わりに、Notepad ++またはRegExを完全にサポートするその他のエディターにコピーします。
タグの外側のすべて、または>
と<
の記号の間のすべてを選択する正規表現文字列は次のようになります。
(?<=>).*?(?=<)
(?<=>)
は 後ろを見る です。>
記号を探し、アンカーとして機能します。このようにして、検索文字列を除外できます。これは、<Afghanistan
が不要なため重要です。.*?
は 遅延数量詞 であり、次の式まですべてを選択します(?=<)
は 先読み であり、<
記号を探しますが、検索された記号自体は除外します。後ろ姿のように
しかし国名を選択したくありません。すべてのタグを削除したい。最初の正規表現の反対が必要です。のようなもの
<.*?>
- Notepad ++の検索と置換ダイアログを開く
- 選択正規表現を使用
- 何を見つける:
<.*?>
- 置換:なし
これは、MS Wordの検索と置換、正規表現なし、JavaScriptなしなどで簡単に実行できます。
角かっこをエスケープすると、実際の角かっこ文字が見つかります。したがって、ワイルドカードをオンにすると、式\<*\\>
山括弧の間のすべてを検索します。それを何にも置き換えないでください。
私はそのために検索/置換を使用しません。そのタスクには、Excelの「TexttoColumns」を使用するのが最も簡単です。これを行うには、テキストを含む列を選択し、[データ]リボンに移動して、[テキストから列へ]を選択します。国名の前のすべてのテキストを削除するために1回(区切り記号は ">"-混乱を避けるために余分な列を削除するようにしてください)、名前の後のテキストを削除するために1回(区切り記号)の2回行う必要があります。記号は「<」になります)。