本文msgにメールアドレス(複数ある場合あり)とその他の文字が含まれます。
ここからメールアドレスのみを抽出したく下記のようにしたのですが、うまくいきません。なぜでしょうか?
よろしくお願い致します。
public static void showMessage(Message msg) throws Exception {
Pattern p = Pattern.compile(" (^[a-zA-Z0-9_.-]+?@[A-Za-z0-9_.-]+$)", 32);
Matcher m = p.matcher(msg.getContent() + "");
System.out.println(m.replaceAll("$1"));
}
(参考)
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java …
※compile()中の「32」はDOTALL フラグです。本当は文字で指定したいのですが、指定の仕方がわからなく、仕方なくこうしています。
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java …
No.2ベストアンサー
- 回答日時:
簡単なサンプルを書いてみました。
参考にしてみて下さい。
----------------------------------------------------------------
import java.util.*;
import java.util.regex.*;
public class MailAddress {
public static void showMessage(String msg) {
Pattern p = Pattern.compile("([a-zA-Z0-9_\\.\\-]+?@[A-Za-z0-9_\\.\\-]+)", Pattern.DOTALL);
Matcher m = p.matcher(msg);
int pos = 0;
while(m.find(pos)){
System.out.println(m.group(0));
pos=m.end(0);
}
}
public static void main(String argv[]){
String msg ="test1@test.com\n<test2@test.com>\nztest3@test.comz\ntest4@test.com\n<test5@test.com>\nztest6@test.comz";
showMessage(msg);
}
}
本当にありがとうございます。
一発で解決してしまいました。
本当に感謝です。
置換して一括で表示しようとしていましたが、そもそも「置換」なんてしないで、「検索」でよかったんですね。検索して、1つずつ表示すればよいと。
正規表現の問題だと思っていたので、とても勉強になりました。
本当にありがとうございます!
No.1
- 回答日時:
^…$
(文字列の初めから終わりまで)
としているからマッチしないんじゃないかと思います。
あと、
DOTALLは、
Pattern.DOTALL
とすればいいと思います。
ご回答ありがとうございます。
1つ進歩しました。
public static void showMessage(Message msg) throws Exception {
Pattern p = Pattern.compile(".*[ \n]([a-zA-Z0-9_.-]+?@[A-Za-z0-9_.-]+).*", Pattern.DOTALL);
Matcher m = p.matcher(msg.getContent() + "");
System.out.println(m.replaceAll("$1"));
//System.out.println(msg.getContent());
}
で
test1@test.com
<test2@test.com>
ztest3@test.comz
test4@test.com
<test5@test.com>
ztest6@test.comz
を入力として、
ztest6@test.comz
となってしまうのですが、どうすればよいのかわかりますか?
test1@test.com
test2@test.com
ztest3@test.comz
test4@test.com
test5@test.com
ztest6@test.comz
としたいのですが。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- JavaScript ソースコードは下の共有コードサイト「張り紙」にあります。 入力フォームの javascript で 1 2022/05/11 11:01
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- Java mac mini 2009 でのmac OS における Java の入れ替えについて 1 2022/12/27 19:23
- JavaScript javascriptで入力フォームが空欄の時にアラートによるエラーを出すコードを書いています。 2 2023/06/13 17:58
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コンストラクタにパスを記述す...
-
Java3Dで横置き円筒体の円筒中...
-
<forEach> 内で供給された "ite...
-
eclipseに記述したjavaファイル...
-
SWTで規定のプラウザでリンクを...
-
「例外 *** は対応する try 文...
-
フレームの×ボタンを押しても閉...
-
JPEG画像のみを印刷したいので...
-
JAVA VMのランタイムのバージョ...
-
mailto:を利用して予約を受け取...
-
かなり初歩的なプログラミング...
-
半透明の画像
-
干支の計算で。。。
-
java キーボード入力された値の...
-
C言語のポインターに関する警告
-
System.out.printlnの出力先
-
変数を動的に利用するには?
-
ダブルクォーテーションのrepla...
-
コマンドライン引数の例外処理...
-
配列の中に複数存在する数がい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
eclipseに記述したjavaファイル...
-
<forEach> 内で供給された "ite...
-
「例外 *** は対応する try 文...
-
importするには java.io.*; imp...
-
Javaを使ってデジタル時計を作...
-
setAttribute(String, int)は適...
-
干支の計算で。。。
-
シャットダウンフックが呼ばれない
-
Selenium IDEでexportしたコー...
-
ColabでのPytorchのエラー
-
文字列を数式に
-
【JAVAエラー】互換性のない型...
-
importとextendsの用い方の違い...
-
HttpClientについて
-
Java3Dで横置き円筒体の円筒中...
-
ActionForm form にnullが入っ...
-
java初心者です。座標取得と図...
-
生年月日と今日の日付から年齢...
-
画面遷移時のデータ遷移について
-
javaで画像を回転縮小
おすすめ情報