- ベストアンサー
正規表現で行ではなく単語のみをファイル化したい
正規表現で電話やアドレスを検索するとその行丸々表示されてしまいます。 [例]'[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+' [結果] 何々、xx@aa,bb,cc 正規表現の単語部分(何々、を除いた部分)だけを取り出すにはどうすればいいのですか お願いします。
- bonbontarou
- お礼率48% (34/70)
- その他([技術者向] コンピューター)
- 回答数3
- ありがとう数0
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#2補足>cygwin grep -o オプションをつけましょう
その他の回答 (2)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
使用している言語はなんでしょうか?
- notnot
- ベストアンサー率47% (4848/10261)
egrep '[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+' としているんでしょうか?grep はマッチした行を表示するコマンドです。行を編集するなら別のコマンドを使います。例えば、 sed -n 's/.*\([a-zA-Z0-9_-]\+@[a-zA-Z0-9_-]\+\(\.[a-zA-Z0-9_-]\+\)\+\).*/\1/p' egrepとsedでは正規表現の仕様が違うので、egrep の ( ) + は、sed では \( \) \+ と書きます。 行に2つ以上アドレスが含まれているケースに対応するならさらに工夫が要ります。そういう場合はawkやperlを使ったほうがいいでしょうね。
関連するQ&A
- 秀丸の正規表現
秀丸の正規表現 http://pc.dearie.jp/hidemaru/replace/14.html 上記URLでメールの正規表現について解説があります。 [A-Za-z0-9\-\.\_]+@[A-Za-z0-9\-\_]+\.[A-Za-z0-9\-\.\_]+ この正規表現でメールの検索をおこなっています。この正規表現は理解出来ます。 .*([a-z0-9\-\.\_]+@[a-z0-9\-\_]+\.[a-z0-9\-\.\_]+)([^a-z0-9@\.\-\_]+).* キャプチャを使って正規表現でメールアドレスをマッチしているのは理解できます。 なぜ置換で、「\1,」とやっても、メールアドレスのみを取得できないのでしょうか? 実際に秀丸エディタを使ってやってみましたが、メールアドレスのみ取得することができませんでした。 検索ではメールアドレスにマッチするのに、なんでキャプチャが正しく動かないのかがわかりません・・・
- ベストアンサー
- その他([技術者向] コンピューター)
- メールアドレスの正規表現
メールアドレスの正規表現 正規表現の勉強をしています。下記のURLのメールアドレスの正規表現の一部が理解できません。 http://hodade.adam.ne.jp/seiki/page.php?s_mail ^[a-zA-Z0-9!$&*.=^`|~#%'+\/?_{}-]+@([a-zA-Z0-9_-]+\.)+[a-zA-Z]{2,4}$ この中の「[a-zA-Z]{2,4}$」の部分がわかりません。 行末が英文字2以上4以下というのは何を表しているのでしょうか? なぜ2以上4以下になるかが理解できません・・・ 宜しくお願いします!!
- ベストアンサー
- その他([技術者向] コンピューター)
- 正規表現ですが・・・
正規表現なんですが(Perlです。) Aa_abcd_aa.txt Aa_abcd_bb.txt Aa_abcd_cc.txt Bb_abcd.txt 上記のabcdの部分をマッチさせるために (?<=Aa_|Bb_).*(?=_aa|_bb|_cc|\.txt) としてみましたが、これでは Aa_abcd_aa.txt Aa_abcd_bb.txt Aa_abcd_cc.txt のabcd_aaやabcd_bbやabcd_ccとマッチしてしまいます。 なにかよい表現の仕方はありますか? まとめてマッチさせる表現が知りたいです。
- ベストアンサー
- その他([技術者向] コンピューター)
- 正規表現メタ文字「-」のエスケープ(再質問)
いつもお世話になります。 以前に質問しているのですが、私の質問内容が悪かったため、再度質問をあげさせていただきます。 正規表現のメタ文字のエスケープ処理を行いたいのですが、「-」の記号について、「[」「]」の中に出てきたときのみ([a-z]、[0-9]など)、 一括でエスケープしてくれるような正規表現は何を指定すればよいでしょうか。 例えば、以下の文字列があった場合、 ああaa-bb[0-9]いいい-uuu[a-zA-Z] エスケープ処理された結果、以下のようになる。([]内の-のみエスケープ処理されて、「\-」となっている) ああaa-bb[0\-9]いいい-uuu[a\-zA\-Z] 上記の一括エスケープ処理を行ってくれる正規表現は、何を指定すればよいでしょうか。 宜しくお願いします。
- ベストアンサー
- Java
- どなたかこの正規表現を変更してくれませんか?
正規表現の素人で困っています。 s/(http:\/\/[0-9A-Za-z]+[\-\.\/0-9A-Za-z_~]*[\/0-9A-Za-z]+)([\x80-\x9f\xe0-\xfc].)?/<A HREF="$1">$1<\/A> という正規表現が「引数付きURLの引数部分(?より先)は無視する」 という内容になっていまして、?より先も含めるようにしたいのです。 現状だと以下のURLを例に http://test.japan.com/test.php?d=404861&c=c6 http://test.japan.com/test.php test.phpまでしか拾ってくれません。 どの様に書き換えればいいのでしょうか?
- 締切済み
- その他(プログラミング・開発)
- 正規表現について
リンク集を作ってみようと試みています。 URLチェックののさいに ereg("^http://+($|[a-zA-Z0-9_~\.\-\/])+$)というのを本から探し使ってみたのですが、あまり意味がわからなくて、教えてください。 +でつないである表現のうち、一番最後の+$の部分が何を意味しているのかがわかりません。どういう意味なのでしょうか? それと、ハイフンの入っているアドレスを登録しようとすると登録ができません。そこでいろいろいじって[a-zA-Z0-9_~\.\/\-]に変更したら、うまくいったのですが、理由がわかりません。これでよかったのでしょうか?
- ベストアンサー
- PHP
- EXCELのマクロで正規表現
EXCELのマクロで正規表現のサイトを色々検索してみましたが ほとんどが,色を変えたり,置換のことしかのっていません 自分がやりたいことはマッチした部分を隣りのセルに移動させる といったことです あいうえお.abcde A1セルに上記の文があった時に正規表現 [a-zA-Z]+ でマッチした部分 (abcde)を B1セルに移動する よろしくお願いします
- ベストアンサー
- オフィス系ソフト
- 携帯アドレスの正規表現
現在、携帯アドレスの正規表現を行っていますが、 どうもうまくいきません。 実際に正規表現をするのは@よりも前の文字列です。 現在下記のようにしますとひらがなもOKになってしまいます。 !ereg( "^[a-zA-Z0-9!#$%&*+/=?^_{|}~.-]+", $email ) 何かよい方法はご存知ないでしょうか?
- ベストアンサー
- PHP
補足
cygwin grep です。