- ベストアンサー
携帯アドレスの正規表現
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
そもそもマルチバイト文字を拾うようなマッチングになっているように見えます。 preg_match("/([a-zA-Z0-9\-\._]+?)@/",$email,$m); みたいな。 これで@以前にある[]内の文字を取得できるはず。 英数字以外のメアドに使用できる文字についてはわかりませんが、こんな感じでしょう。
その他の回答 (1)
- inu2
- ベストアンサー率33% (1229/3720)
携帯電話のメールアドレスって、キャリアによってはかなりいいかげんで(特に、何処とは言いませんよドコとは・・・・) RFC821とRFC822に準じていない場合も許可されており 半角英数だったら良し としておいたほうが無難かもしれません
お礼
ありがとうございます。 そうなんですね~・・・。
関連するQ&A
- メールアドレスの正規表現
メールアドレスの正規表現 正規表現の勉強をしています。下記の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自体@も配列なので\@つけた方が・・・ よろしくお願いいたします。 $x = "test@example.com"; if ( $x =~ /[^a-zA-Z0-9\.\-\_@]/) if ( $x =~ /[^a-zA-Z0-9\.\-\_\@]/)
- ベストアンサー
- Perl
- 正規表現について
リンク集を作ってみようと試みています。 URLチェックののさいに ereg("^http://+($|[a-zA-Z0-9_~\.\-\/])+$)というのを本から探し使ってみたのですが、あまり意味がわからなくて、教えてください。 +でつないである表現のうち、一番最後の+$の部分が何を意味しているのかがわかりません。どういう意味なのでしょうか? それと、ハイフンの入っているアドレスを登録しようとすると登録ができません。そこでいろいろいじって[a-zA-Z0-9_~\.\/\-]に変更したら、うまくいったのですが、理由がわかりません。これでよかったのでしょうか?
- ベストアンサー
- PHP
- 秀丸の正規表現
秀丸の正規表現 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,」とやっても、メールアドレスのみを取得できないのでしょうか? 実際に秀丸エディタを使ってやってみましたが、メールアドレスのみ取得することができませんでした。 検索ではメールアドレスにマッチするのに、なんでキャプチャが正しく動かないのかがわかりません・・・
- ベストアンサー
- その他([技術者向] コンピューター)
- 正規表現で入力チェックするには。
正規表現を使用して入力チェックをしようと考えていますが特殊記号文字がうまくいきません。 [0-9a-zA-Z]で英数字はチェックする事ができたんで下記の特殊文字を指定するとエラーになってしまい困っています。 「!"#$%&'()=~|`{+*}<>?_-^\@[;:],./」 ロジックは以下のように記述しています。 Pattern p = Pattern.compile("[0-9a-zA-Z!\"#$%&'()=~|`{+*}<>?_-^\\@[;:],./]"); Matcher m = p.matcher("文字列"); if(m.matches() == true){ System.out.println("1"); } else{ System.out.println("2"); } ※「\」と「"」はエスケープしています。 下記のエラーメッセージが表示されてなんとなくですが正規表現でエラーになっているのはわかるんですが・・・ Illegal character range near index 32 [0-9a-zA-Z!"#$%&'()=~|`{+*}<>?_-^\@[;:],./] ^ 申し訳ありませんがアドバイスいただけませんでしょうか? 宜しくお願いします。
- ベストアンサー
- Java
- 正規表現
質問させていただきます。 文字コード「Shift-JIS」で渡ってきた文字列を 英字とスペースはOKで、 それ以外の文字列が入力されていたら、エラーいう処理を しているのですが、うまくいきません。 ご教授よろしくお願いします。 // 半角にする $kana = mb_convert_kana($_POST['kana'], "r"); if ((ereg("^[a-zA-Z]+$", trim($kana))) == false) { echo "エラーです"; } 全角スペースと半角スペースと英字はOKで、それ以外はNG としたいです。 よろしくお願いします。
- ベストアンサー
- PHP
- 正規表現
正規表現の使い方を教えて下さい。 下記のソースでは、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(); // ここにも来ない } } }
- ベストアンサー
- Java
- 正規表現
strutsのバリデータでmaskのみで 以下の条件を正規表現を使ってあらわしたいのですが 使用可能文字 半角英数字 @ - _ . 条件 @ _ - . 同一文字の連続使用は不可。 先頭と最期は半角英数字のみ。 全部の文字数は3文字以上30文字以内。 aaa@aaa OK aaa@_-a OK aaa@@_a NG a@@@a NG @マークの連続使用不可は↓でできたのですが、 ^[a-zA-Z0-9]([a-zA-Z0-9]+@?){1,30}[a-zA-Z0-9]$ _ . - の条件を加えるとうまくいきいません。。 よい方法がございましたらご教授ください!!
- ベストアンサー
- その他(プログラミング・開発)
お礼
ありがとうございます。できました!!