質問: 秀丸の正規表現 秀丸の正規表現 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,」とやっても、メールアドレスのみを取得できないのでしょうか? 実際に秀丸エディタを使ってやってみましたが、メールアドレスのみ取得することができませんでした。 検索ではメールアドレスにマッチするのに、なんでキャプチャが正しく動かないのかがわかりません・・・
回答: 元々メールアドレスの記載がない行は、検索にヒットしていません 検索にヒットしていなければ、当然置換はできませんよね 置換は、検索にヒットした部分に関して置き換えをするのですから ([^a-z0-9@\.\-\_]+) が付いているので、直前の改行はヒットして、削除されているのですが