アプリ版:「スタンプのみでお礼する」機能のリリースについて

正規表現の使い方を教えて下さい。

下記のソースでは、oPerl5Util.matchメソッドから戻って来ません。
正規表現文字列が悪いのか
それともメソッドの呼び方の手順などが悪いのか
指摘して下さい。

import org.apache.oro.text.perl.Perl5Util;
public class clsTestMain {
 public clsTestMain() {}
 public static void main(String[] args) {
  clsTestMain clsTestMain1 = new clsTestMain();
  Perl5Util oPerl5Util = new Perl5Util();
  String sPattern = "/[0-9a-zA-Z_!#$%&'*+-/=?^`{|}~]+(.[0-9a-zA-Z_!#$%&'*+-/=?^`{|}~]+)*@[0-9a-zA-Z-]+(.[0-9a-zA-Z-]+)*/";
  String sTaget = "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890@.jp";  
  try {
   boolean bResult = oPerl5Util.match(sPattern,sTaget); // ここで処理が止まる
   System.out.println(bResult); // ここにも来ない

  } catch (Exception oException) {
   oException.printStackTrace(); // ここにも来ない
  }
 }
}

A 回答 (1件)

Perl5Utilには詳しくありませんし,またソースを見ただけではどのような処理をしたいのかが良くわからないのですが…。



見たところメイルアドレスのパターンマッチングのようですが,普通,正規表現では'.'は任意の一字を指すので,もし,'.'という文字そのものとマッチングさせたいのであれば,エスケープ('\.'と書くとか)する必要があるのではないでしょうか?

いずれにせよ,正規表現を使いたいのであれば,Perl5Utilの正規表現仕様をきちんと把握されることをお薦めします。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!