- 先上代码:
邮箱,数字,汉字和包含数字和字母的正则表达式
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 空白字符
- 字符组 [] 一个字符组成匹配一个位置(即一个字符),且该位置可以匹配字符组中的任何一个字符