Java中正则表达式

1、描述字符
x         字符 x 例如: a
\         反斜线字符
\t         制表符 (’\u0009’)
2、描述多个字符
[abc]             a、b 或 c(简单类)
[^abc]           任何字符,除了 a、b 或 c(否定)
[a-zA-Z]        a 到 z 或 A 到 Z,两头的字母包括在内(范围)
[0-9]              0 到 9之间数字的匹配

3、预定义字符类
.        任何字符
.        只代表 . 文本
\d        数字:[0-9]
\D        非数字: [^0-9]
\s        空白字符 空格
\S        非空白字符
\w        单词字符:[a-zA-Z_0-9]
\W        非单词字符:[^\w]

4、边界匹配器
^        行的开头 在括号外面表示以什么开头 , 在中括号里面表示否定
$        行的结尾
\b        单词边界

5、数量词
X?        X,一次或一次也没有 b?
X*        X,零次或多次        b*
X+       X,一次或多次         b+ 至少一个
X{n}        X,恰好 n 次         b{6} 必须由6个
X{n,}        X,至少 n 次         b{6,} 至少6个
X{n,m}       X,至少 n 次,但是不超过 m 次       b{6,16} 至少6个,最多16个

6、分组
()        表示独立组
\n        预处理 n 表示位置数值 ([0-9])([a-z])\1\2 匹配 1a1a

示例

// qq号,手机号,用户名
	public static void test2() {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入QQ号");
		String userQQ = sc.next();
		if (userQQ.matches("[1-9][0-9]{4,10}")) { // 5-11位数
			System.out.println("可以注册");
		}else {
			System.out.println("输入的格式不正确,请输入5-11位开头不为0的数");
		}
		System.out.println("请输入手机号");
		String phone = sc.next();
		if(phone.matches("[1][3-5[7-9]]\\d{9}")) {
			System.out.println("可以注册");
		}else {
			System.out.println("输入的格式不正确,请输入正确的手机号");
		}
		System.out.println("请输入用户名");
		String username = sc.next();
		if(username.matches("[a-zA-z]\\w{2,11}")) { // 3 - 12 位
			System.out.println("可以注册");
		}else {
			System.out.println("输入的格式不正确,请输入3-12位且以字母开头");
		}
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值