先上代码:
邮箱,数字,汉字和包含数字和字母的正则表达式
public class Mail {
public static void main(String[] args) {
Scanner mail = new Scanner(System.in);
int c = 1;
while(c == 1) {
//输入qq邮箱
String qqmail = mail.nextLine();
//qq邮箱匹配,代表 开头第一个数字必须是123,长度为4-9,后面的为@qq
String regex = "[123]\\d{4,9}\\@qq\\Wcom";
//匹配数字-----如果不是纯数字返回fals
String regex2 = "\\d*";
//匹配汉字------如果不是纯汉字返回fals
String regex3 = "[\\u4e00-\\u9fa5]*";
// 匹配数字和大小写字母------如果不是返回fals
// * 代表至少匹配0次,最多N次。
String regex4 = "[A-Za-z0-9]*";
boolean tar = qqmail.matches(regex4);
if(tar) {
System.out.println(tar);
c = 2;
} else {
System.out.println("你输入*********不对,请重新输入");
}
}
}
}
关于正则表达式的元字符:
^ 匹配文本的开始位置,^称为脱节字符
$ 匹配文本的结束位置
. 匹配任意一个字符
\(反斜杠)转义字符,将特殊字符转义成普通字符
() 标记一个子表达式,子表达式可以匹配多个字符
| 意为'或',|两边的子表达式称为多分支
// 实例:abc(123dd|aaaa)
? 匹配前面的子表达式或字符0或1次 0-1
* 匹配至少0次 0-n
+ 匹配至少1次 1-n
{min,max} 匹配至少min次,至多max次 min-max
{min,} 匹配至少min次 min-n
\d 数字匹配字符
\D 匹配一个非数字字符
\w 单词字符 匹配包括任何单词字符(包括下划线字符)。等价于[A-Za-z0-9]
\W 匹配任何非单词字符
\s 空白字符
字符组 [] 一个字符组成匹配一个位置(即一个字符),且该位置可以匹配字符组中的任何一个字符