残念ながら、この一見単純な作業は、notepad++ ではほとんど不可能です。あなたが構築しなければならない正規表現は...恐ろしいでしょう。それは不可能かもしれませんが、可能であれば、それだけの価値はありません。私はそれをかなり保証します。
しかし、すべてが失われるわけではありません。この問題により適した他のツールがあります。
本当に欲しいのは、入力ファイルを検索して正規表現のリストを出力できるツールです。UNIX ユーティリティの「grep」はまさにそれを行います。これは UNIX ユーティリティなので、心配しないでください。Windows 用に入手できます。
http://gnuwin32.sourceforge.net/packages/grep.htm
使用する grep コマンド ラインは次のとおりです。
grep -o 'http:\/\/www.[a-zA-Z0-9./-]\+\?' <filename(s)>
(URL を検索するファイルの名前はどこ<filename(s)>
にありますか。)
正規表現を少し変更することもできます。その正規表現で見られる問題は、「www」サブドメインのない URL を処理しないことと、安全なリンク (で始まるhttps
) を処理しないことです。多分それはあなたが望むものですが、そうでない場合は、次のように変更します。
grep -o 'https\?:\/\/[a-zA-Z0-9./-]\+\?' <filename(s)>
これらの表現について、次の点に注意してください。
[
文字グループ内では、 and (場合によっては)を除いてメタ文字を引用する必要はありません-
。上記のようにダッシュを最後に置くと、範囲演算子として解釈されなくなるため、時々言います。
grep ユーティリティの構文は、厄介なことに、ほとんどの正規表現の実装とは異なり、使い慣れたメタ文字 ( ?
、+
など)のほとんどを使用するにはエスケープする必要があり、その逆ではありません。?
上記のおよび文字の前にバックスラッシュが表示されるのはそのためです+
。
最後に、この式の繰り返しメタ文字 ( +
) はデフォルトで貪欲であり、問題を引き起こす可能性があります。a を追加して遅延させ?
ました。URL の一致を定式化した方法では、おそらく問題は発生しませんでしたが、たとえば[^ ]
の代わりに一致を に変更する[a-zA-Z0-9./-]
と、同じ行の URL が結合されていることがわかります。