• ベストアンサー

正規表現でURLを抽出したいと思っています。

お世話になります。 SPAMメール対策のため、フィルタ用のURLリストを作りたいと思っています。 秀丸にエクスポートした多数のSPAMメールの本文内から「http」で始まるURLを抜き出し、置換したいと思うのですがうまくいきません。 ^[^(http)].*$ で置換すればよいのかと思いましたが 文字列の否定はできないようです。 お知恵を貸して頂けると幸いです。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • Dpop
  • ベストアンサー率51% (279/544)
回答No.1

URLを抽出すれば良いのですよね? 実は、URLの抽出って非常に難しいのです。 あまり一般には知られていない様なオーブションが、いろいろとあるためなのですよね。。 一般的なURLであれば、 ^https?://.+/(.+/)*$ で、指定した事になります。 秀丸の使い方は良く知りませんが。。 Perlであれば、 $_ =~ s|^https?://.+/(.+/)*$||g; の様にすれば、URLを削除した事になりまあ。 もっと、本格的なURLを抽出するのであれば、 http://www.din.or.jp/~ohzaki/perl.htm#URI を参考にしてみて下さい。

both_sides
質問者

お礼

お返事ありがとうございます。ただ、秀丸では使えないようで、Grepで抽出してリストを作成することにしました。教えて頂いたURLで勉強したいと思います。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 秀丸で正規表現を使って置換

    あるファイルに関して、このような置換を行いたいです。 abc/xxx,yyy,zzz.html ↓ abc/xxx.html xxxとyyyとzzzはある任意の文字列(英数字で文字数はばらばら)で 「abc/」と「,」と「.html」は固定の文字列になります。 そこで、秀丸で開いて、正規表現による検索で、 「abc/.*,.*,.*.html」 として検索すると、該当部分が検索できることがわかりましたが、置換後をどのように設定すればいいのかわかりません。 置換後のabc/xxx.htmlの「xxx.html」の部分は検索前の任意の文字列をそのまま残したいのです。 秀丸の置換機能でこのようなことは可能でしょうか? 正規表現に関してあまり詳しくないので教えてください。

  • 正規表現で一括置換

    現在、数多くの長文データを、テキストエディタの置換機能で一括置換しています。 jeditX(または秀丸エディタ)の正規表現をもちいた複数一括置換について質問させていただきます。 私は正規表現やPC言語の初心者です。どうぞよろしくお願いいたします。 かなり困り果てております。どうぞ、正規表現にくわしいかた、よろしくお願いします。 一二三『一二三にそれぞれ♪マーク』 という文章に対して 一♪二♪三♪ という一括置換をすることには成功しました。 こう書いています。 ■検索文字列 (.{1,1})(.{1,1})(.{1,1})『(.{1,1})(.{1,1})(.{1,1})にそれぞれ♪マーク』 ■置換文字列 \1♪\2♪\3♪ これでぶじ、以下のように一括置換できました。 一♪二♪三♪ 現実には傍点や圏点をふっているんですが、判りやすく♪マークにしています。 この調子で長い文章も変換できていて満足していたのですが…… しかし代入文字が10個以上になったとたんに、まったく動きません。 ■置換したい文章 一二三四五六七八九十『一二三四五六七八九十にそれぞれ♪マーク』 ■検索文字列 (.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})『(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})にそれぞれ♪マーク』 ■置換文字列 \1♪\2♪\3♪\4♪\5♪\6♪\7♪\8♪\9♪\10♪ こうやると、置換後の文章は以下のようになってしまいます。 一♪二♪三♪四♪五♪六♪七♪八♪九♪一0♪ 10個目以降の数字が、正しく機能してくれません。 \10  という正規表現の書き方は 「一番目の値を参照して、それから数字の0を記入しなさい」 という意味になってしまうようです。 わたしは十番目の値を代入してほしいだけなんです。 \1 や \2 や \3 といった代入文字のように \10 や \11 を機能させる、正しい表記をご教授ください。よろしくお願いいたします。 ちなみに以下のように書いてもダメでした……。 \1\0 グーグルで1日中検索しても判りませんでした。jeditXの複数一括置換でこれをなんとかしたいのです。ご存じの方、どうぞ教えてください。よろしくおねがいします! 秀丸エディタをご利用で、正規表現にくわしい方も、ぜひヒントを出していただければと思います。

  • 秀丸エディタの正規表現

    秀丸エディタの正規表現 これから述べる置換処理について教えてください。 条件を表現します。 まず半角空白文字を _ このように全角アンダースコアであらわします。 そしてマッチさせたいSTRINGは _ このように半角空白文字がそれ以外の文字に前後をはさまれている状態ではなくて、 、 __ このように半角空白文字二個もしくは二個以上続いたものが半角空白文字以外に挟まれているパターンです。 。 ちなみに置換後の文字列は __ ですつまり空白半角文字列二個です。 よってこの質問は次のようにも言い換えられます。 。 検索文字列 半角空白文字二個以上 を置換後文字列 半角空白文字二個に置き換える。もしくは、半角空白文字三個以上を 置換後文字列 半角空白文字二個に置き換える。 というのが質問です。おねがいします。 すみませんつけたしです。上記を実現する正規表現を教えてください。

  • 秀丸メールの正規表現について質問です。

    仕事で秀丸メール(バージョン5.0)を使っているのですが、正規表現を使って溜まっているスパムメールを検索して一気に削除したいのです。なにか良い正規表現はございませんでしょうか?(外国語・日本語のスパムすべて) なお、事情があって迷惑メールフィルターは利用できず、溜まっているスパムの数も膨大で非常に困っております。

  • 秀丸での正規表現

     秀丸エディタVersion 7.11、HMJRE.DLL V1.92 を使用しています。  下記上のような4行のテキストファイルから、数字以外で始まる行を空行に置換しようと思い、検索文字列を「^[^0-9].*」、置換文字列を「」(なし)に設定したのですが、3行目のx だけからなる行は削除されませんでした(下記下のようになりました。このとき、カーソルは変換後の2行目の一番左のx の右側にあります)。 置換前 >11111 > >xxxxx >[EOF] 置換後 >11111 >xxxxx カーソルは左端のx の右側 >[EOF]  11111 とxxxxx の間にもう1行空行を入れると、所望の動作となります。  正規表現の指定が間違っているのでしょうか。

  • エクセルでURLからタイトルと本文を抽出するには?

    エクセルを使ってURLからタイトルと本文を抽出するにはどうすればいいのでしょうか? A列にはURLを記入するとして、VBAを使ってB列にタイトル、C列に本文を抽出したいです。 ちなみに、C列の本文は、全てではなく、200文字とか設定したいです。 (C列は本文200文字のあとに「・・・」が入るようにしたいです) すいませんが、どなたか教えてください。 よろしくお願いします。

  • 秀丸の置換で正規表現を使う方法を教えてください

    お世話になります 秀丸エディタの置換を用いて、 (’.ab12#-cd’)のような文字列や数字、記号のまじった ( )から( )の中身を検索置換して (’’)にしたいと考えています。 具体例 (’.ab12#-cd’) (’.ab#37-c’) (’..ab-82#d%’) (’.12jg+#ppv’) (’.ab12lentext’)から ↓ (’’)に置換したい。 秀丸を使うときはあっても単純な 一文字程度の検索置換しかおこなったことがなく どうにも方法がうかばなかったところ 友人から、正規表現というものを 使えば実現できるようだと聞きました。 友人も残念ながら、プログラミングの経験は あまりなくて正規表現での記述方法は わからないいうことでした。 正規表現を使ってこれを実現する方法を 教えていただけませんでしょうか よろしくお願いいたします

  • テキストエディタでの置換(正規表現チェック済)と同様のことを

    テキストエディタでの置換(正規表現チェック済)と同様のことを エクセルのマクロでもしたい。 画像を添付しましたが、秀丸で置換を選択し、 検索文字列と置換文字列を入れて、正規表現チェックのチェックボックスを 選択した状態で実行するのと同様のことをエクセルのマクロで行いたいです。 正規表現混みだととても難しいです。 やりたいことはマクロで、フォルダ内のテキストファイルを置換をかけていきたいです。(テキストファイルは複数ある状態)そのテキストファイルを更新できればいいです。(別テキストで出力されてもいいです。) どなたか詳しい方、教えていただけませんでしょうか? よろしくお願いいたします。 --- 検索エディタ【秀丸】【置換】 検索【.*item1=(.*) item2=(.*) .*】 置換【\1\t\2】 正規表現チェック

  • 正規表現で前方一致を実現したい

    お世話になります。 正規表現を用いて、ある特定の文字を前方一致で検索し、ヒットしたその文字以前のを置換する、ということを実現するにはどのような記述をすればよいのか分からず困っています。 たとえば、  あいうえお&かきくけこ&さしすせそ という文字列があったとき、最初の「&」以前だけを削り、結果、下記のような文字列を取得したい場合、どのような記述をすればよいでしょうか。  かきくけこ&さしすせそ これを秀丸エディタ上で実現したいです。 宜しくお願いします。

  • サクラエディタの正規表現について

    こんにちは。 サクラエディタの正規表現を使った置換について お伺いします。 文字列(タブ)文字列(タブ)文字列(タブ) 文字列(タブ)文字列(タブ)文字列(タブ) 文字列(タブ)文字列(タブ)文字列(タブ)         ・         ・ というファイルがあった場合、 各行の一番最初の文字列だけ残して タブ以降すべて削除したいと思っています。 この場合どのようにしたらよいのか、大変悩んでいます。 お知恵をお借りできましたら幸いです。 よろしくお願いいたします。