

本文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ランキング
-
eclipseに記述したjavaファイル...
-
「例外 *** は対応する try 文...
-
JTableでスクロールバーが表示...
-
J#でjava.awt.frameからSystem....
-
Javaのシリアライズについて質...
-
アプレットビューアで文字が表...
-
スタイルシートが適用されない。
-
アプレットの動作テストができない
-
Javaを使ってデジタル時計を作...
-
importするには java.io.*; imp...
-
importとextendsの用い方の違い...
-
jFrameを使って複数の画面を生...
-
JPanelについて
-
System.err. printlnとSystem.o...
-
ループ処理の際、最後だけ","を...
-
JSPやサーブレットでSystem.out...
-
Javaで文字と数字が混ざったも...
-
[JAVA]try 内の変数を外で!?
-
ORA-01858: 数値を指定する箇所...
-
IF関数でEmpty値を設定する方法。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
eclipseに記述したjavaファイル...
-
「例外 *** は対応する try 文...
-
<forEach> 内で供給された "ite...
-
干支の計算で。。。
-
importするには java.io.*; imp...
-
Javaを使ってデジタル時計を作...
-
シャットダウンフックが呼ばれない
-
setAttribute(String, int)は適...
-
Selenium IDEでexportしたコー...
-
JAVA 乱数で同じ数字を出さな...
-
文字列を数式に
-
Java での グローバルIP取得
-
importとextendsの用い方の違い...
-
文字サイズが可変のラベル
-
ColabでのPytorchのエラー
-
Swingなしで画像ファイルロード
-
ActionForm form にnullが入っ...
-
GridBagLayoutについての質問
-
ファイル名を動的に生成したい
-
Xercesを使ったjavaでのXML解析
おすすめ情報