各言語で正規表現のサンプルを書いてみました。
正規表現式
Emailアドレス
^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ドメイン名
^[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]\.[a-zA-Z]{2,}$インタネットURL
^(http|https)://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ユーザー名 (Twitter username)
^[a-zA-Z0-9_\-.]{3,15}$固定電話
^0\d-\d{4}-\d{4}$携帯電話
^(070|080|090)-\d{4}-\d{4}$IP電話
^050-\d{4}-\d{4}$フリーダイヤル
^0120-\d{3}-\d{3}$パスワード(大文字小文字英数字組み合わせ、特殊文字禁止、長さは8-10
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$日付 (YYYY-MM-DD)
^\d{4}-\d{1,2}-\d{1,2}$郵便番号
^\d{3}-\d{4}$XML
^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$空白行
\n\s*\r先頭後尾空白文字
^\s*|\s*$IPアドレス
\d+\.\d+\.\d+\.\d+IPアドレス
((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))数字
^[0-9]*$N桁数字
^\d{n}$N桁以下数字
^\d{n,}$M-N桁数字
^\d{m,n}$ゼロから始まる数字
^(0[0-9]*)$ゼロ以外から始まる数字
^([1-9][0-9]*)$小数点以下1-2位数字
^(\-)?\d+(\.\d{1,2})?$正整数
^[1-9]\d*$負整数
^\-[1-9]\d*$英数字
^[A-Za-z0-9]+$長さが3-20の全ての文字
^.{3,20}$大文字小文字26英字
^[A-Za-z]+$大文字26英字
^[A-Z]+$小文字26英字
^[a-z]+$
言語別
Go
package main
import (
"fmt"
"regexp"
)
func main() {
rep := regexp.MustCompile(`^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$`)
isEmail := rep.MatchString("dongri@qiita.com")
fmt.Println(isEmail) // true | false
}
Ruby
#!/usr/bin/env ruby
rep = Regexp.new("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$")
isEmail = rep === "dongri@qiita.com"
puts isEmail
JavaScript
var regex = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
regex.test("dongri@qiita.com"); // true | false
var regex = new RegExp('^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$');
regex.test("dongri@qiita.com"); // true | false
Perl
#!/usr/bin/env perl
$rep = '^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$';
$email = 'dongri.@qiita.com';
if ($email =~ /$rep/) {
print "valid";
} else {
print "invalid";
}
Python
#!/usr/bin/env python
import re
rep = '^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$';
email = 'dongri@qiita.com';
isEmail = re.match(rep, email) != None;
print(isEmail);
Swift
import Foundation
let rep = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$"
let email = "dongri@qiita.com"
let isEmail = NSPredicate(format: "SELF MATCHES %@", rep).evaluate(with: email)
print(isEmail)
Java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args) {
String regex = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";
String email = "dongri@qiita.com";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(email);
Boolean isEmail = matcher.matches();
System.out.println(isEmail);
}
}
Top comments (2)
^$はPHPなどでは改行を考慮せず危険なので\A\zを使いましょう
はい!
