各言語で正規表現のサンプルを書いてみました。
正規表現式
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を使いましょう
はい!