Viでメールアドレスを置換する正規表現を教えて下さい。


:1,$s/ hogehogehoge

の形でお願いします。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2013/11/05 12:03:48
  • 終了:2013/11/12 12:05:04
id:kichitaka

コメントを頂いて、補足です。おっしゃる通りです。申し訳ありません。
DBの中身をテスト環境に移すにあたってメールアドレスをダミーデーターに書き換えたくsql全体に置換をかけたいと思っています。

aaaa@adsf.ne.jp を aaaaa@aaaa.comに置換等を行いたいのです。

phpでこの手の事はよくやるのですが、viでやりたく。(php通せばすぐできるのですが今後の為にもviでチャレンジしたいなと。sed等の方がよいのかもしれませんが。)

回答(2件)

id:tea_cup No.1

tea_cup回答回数1023ベストアンサー獲得回数1832013/11/05 22:03:04

ポイント50pt

1,$s/[^ @][^ @]*@[^ @][^ @]*/aaaaa@aaaa.com/

で良いですか?
viというかedの構文久々なので抜けあるかもですけど。

個人的には、sedで
s/[^ @][^ @]*@[^ @][^ @]*/aaaaa@aaaa.com/g
したいです。

id:kichitaka

ありがとうございます。

2013/11/13 15:56:08
id:a-kuma3 No.2

a-kuma3回答回数4583ベストアンサー獲得回数19232013/11/05 22:41:59

ポイント50pt

メールアドレスにマッチする正規表現というのは、きっちりやろうとすると意外と面倒なのですよ。
http://q.hatena.ne.jp/1364362489#a1195752

aaaa@adsf.ne.jp を aaaaa@aaaa.comに置換等を行いたいのです。

という指定が、「(メールアドレスっぽいの文字列)@adsf.ne.jp」を、固定の文字列「aaaaa@aaaa.com」に変換したい、ということであれば、多少は簡単になりますけど。

:1,$s,[A-Za-z0-9!#%&`_=\\/$'*+?^{}|~.-][A-Za-z0-9!#%&`_=\\/$'*+?^{}|~.-]*@adsf\.ne\.jp,aaaaa@aaaa.com,g
id:kichitaka

ありがとうございます。確かに、きっちりメールアドレスは大変ですね。

2013/11/13 15:55:51
  • id:TransFreeBSD
    どうなってるのをどう置換したいのか書いてないと答えれないのじゃないかな?
    例えば「hoge@foo.jp」を「"hoge" <hoge@foo.jp>」のようにとか。
  • id:niwa-mikiho
    php でも perl でもコンソールでプログラム書いた方が速い気がする。

    何が何でも vi で行うのではなく、自分が得意とするもので処理した方がスピードも確実性も上がると思いますよ。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません