人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

秀丸でマクロもしくは正規表現を教えてください。CSVファイルがあって、CSVの内容は

abcde,sfse,abc@may.com,,abc,abc,,,,
abcs@hello.com,,,,abc,der,dss,,,,,,
dors,hello,back,take@takeonme.com,bee,
, ,,,,sfa,sfa,big@big.com
などとなっています。この中でメールアドレス以外の
文字を削除して
abc@may.com,
abcs@hello.com,
take@takeonme.com,
big@big.com
というように、書き換えたいと思っています。メールアドレスにヒットさせる正規表現は、[a-z._-]+@[a-z._-]+だと思うのですが、どのように文字のみを削除すればよいかわかりません。もしくはマクロを使って一発で変換できれば、それがよいです。ご教授ください。

●質問者: popattack
●カテゴリ:コンピュータ インターネット
✍キーワード:ABC bee BIG CSV Hello
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● garyo
●27ポイント

1.正規表現の置換で

「,」→「,\n」を実行

2.一度ファイルを保存する

3.「検索」→「grepの実行」で2.で保存したファイルに対し

「@」で検索する。(正規表現使ってもいいかも)

4.結果の頭にファイル名と行数が入ってるので

正規表現で「^.*\):」→「」を置換して削除

5.あと行頭にスペースが残るので

「 」→「」で削除

6.一行に戻す場合は

「,\n 」→「,」を正規表現で置換


http://q.hatena.ne.jp/1169868508


2 ● huruyosi
●27ポイント

http://dummy

[a-z._-]+@[a-z._-]+だと思うのですが、どのように文字のみを削除すればよいかわかりません。

タグ付き正規表現を使うと正規表現にマッチした部分をとりだせます。

適当なサイトがなかったので秀丸エディタヘルプの

検索系コマンド→正規表現→\1・\2 一般的正規表現互換のタグ付き正規表現

を参照してください。


置換ダイアログを開いて

検索:^.*,([a-z._-]+@[a-z._-]+).*$

置換:\1

と入力すると、メールアドレス部分だけを残せます。

ただ、この場合だと

abcs@hello.com,,,,abc,der,dss,,,,,,

このパターンが上手く対応できないので、行の先頭からメールアドレスが始まるパターンとの2種類をマクロで実行されてはいかがですか。

下は希望された状態に置換するマクロです。

replaceall "^.*,([a-z._-]+@[a-z._-]+,?).*$" , "\\1" , regular, nocasesense;
replaceall "^([a-z._-]+@[a-z._-]+,?).*$" , "\\1" , regular, nocasesense;

3 ● KRM
●26ポイント

変換マクロ

replaceall "^([^@,]*,)*([a-zA-Z._-]+@[a-zA-Z._-]+,?).*$" , "\\2" , regular, nocasesense;

でいけると思います。

メールアドレス中の大文字アルファベットを許す場合です。

http://dummy/ ダミー

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ