java 正则匹配 数组_Java正则表达式

需求:

判断QQ号码:

1,要求必须是5-15位数字

2,0不能开头

不使用正则表达式

import java.util.Scanner;

public class IntegerDemo {

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner sc = new Scanner(System.in);

System.out.println("请输入你的QQ号码:");

String qq = sc.nextLine();// 录入QQ号码

System.out.println(checkQQ(qq));// 输出校验

}

public static boolean checkQQ(String qq)// 校验

{

boolean flag = true;

if (qq.length() >= 5 && qq.length() <= 15 && !qq.startsWith("0")) {

char chs[] = qq.toCharArray();

for (int i = 0; i < chs.length; i++) {

char ch = chs[i];

if (!Character.isDigit(ch)) {

flag = false;

break;

}

}

} else {

flag = false;

}

return flag;

}

}

使用正则表达式

/*

* A:字符

* x 字符x。举例:'a'表示字符a

* \\ 反斜线字符

* \n 换行符('\u000A')

* \r 回车符('\u000D')

*

* B:字符类

* [abc] a、b或c(简单类)

* [^ABC] 任何字符,除了a、b或c(否定)

* [a-zA-Z] a到z或A到Z,两头的字母包括在内(范围)

* [0-9] 0到9的字符都包括

*

* C:预定义字符类

* . 任何字符。'\.'用于表示'.'

* \d 数字:[0-9]

* \w 单词字符:[a-zA-Z_0-9]

* 在正则表达式里面组成单词的东西必须有这些东西组成

*

* D:边界匹配器

* ^ 行的开头

* $ 行的结尾

* \b 单词边界

* 就是不是单词字符的地方。

* 举例:hello world?haha;xixi

*

* E:Greedy数量词

* X? X, 一次或一次也没有

* X* X, 零次或多次

* X+ X, 一次或多次

* X{n} X, 恰好n次

* X{n,} X, 至少n次

* X{n,m} X, 至少n次,但是不超过m次

* */

import java.util.Scanner;

public class IntegerDemo {

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner sc = new Scanner(System.in);

System.out.println("请输入你的QQ号码:");

String qq = sc.nextLine();// 录入QQ号码

System.out.println(checkQQ(qq));// 输出校验

}

public static boolean checkQQ(String qq) {// 校验

// String regex="[1-9][0-9]{4,14}";//上下通用

String regex = "[1-9]\\d{4,14}";// 上下通用

boolean flag = qq.matches(regex);

return flag;

}

}

/*

* 判断手机号码是否满足要求

* 11位数字

* */

/*

* 判断手机号码是否满足要求

* 11位数字

* */

import java.util.Scanner;

public class IntegerDemo {

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner sc = new Scanner(System.in);

System.out.println("请输入你的手机号码:");

String phone = sc.nextLine();// 录入手机号码

System.out.println(checkPhone(phone));

}

public static boolean checkPhone(String phone) {// 校验

String regex = "1[3|5|7|8|][0-9]{9}";

boolean flag = phone.matches(regex);

return flag;

}

}

验证邮箱

/*

* 验证邮箱

* */

import java.util.Scanner;

public class IntegerDemo {

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner sc = new Scanner(System.in);

System.out.println("请输入你的邮箱:");

String mail = sc.nextLine();// 录入QQ号码

System.out.println(checkMail(mail));// 输出校验

}

public static boolean checkMail(String mail) {// 校验

String regex = "^[A-Za-zd]+([-_.][A-Za-zd]+)*@([A-Za-zd]+[-.])+[A-Za-zd]{2,5}$";

boolean flag = mail.matches(regex);

return flag;

}

}

-作为分隔符,分隔2个整数

/*

* 正则表达式的分隔

* 年龄18-24

* */

public class IntegerDemo {

public static void main(String[] args) {

// TODO Auto-generated method stub

// 定义一个年龄搜索范围

String ages = "18-24";

// 定义规则

String regex = "-";

// 调用方法

String strArray[] = ages.split(regex);

// 遍历

for (int i = 0; i < strArray.length; i++) {

System.out.println(strArray[i]);

}

}

}

/*

* 正则表达式的分隔

* 多种符号作为分隔符

* */

/*

* 正则表达式的分隔

* 多种符号作为分隔符

* */

public class IntegerDemo {

public static void main(String[] args) {

// TODO Auto-generated method stub

// 定义一个字符串

String ages1 = "aa,bb,cc";// ,作为分隔符

String ages2 = "aa.bb.cc";// .作为分隔符

String ages3 = "aa bb cc";// 多个空格作为分隔符

String ages4 = "F:\\users\\deng\\workspace\\Jacky\\src\\com\\jacky";// 文件夹路径\作为分隔符

// 定义规则

String regex1 = ",";

String regex2 = "\\.";

String regex3 = " +";

String regex4 = "\\\\";

// 调用方法

String strArray1[] = ages1.split(regex1);

String strArray2[] = ages2.split(regex2);

String strArray3[] = ages3.split(regex3);

String strArray4[] = ages4.split(regex4);

// 遍历

for (int i = 0; i < strArray1.length; i++) {

System.out.println(strArray1[i]);

}

System.out.println("----------------");

for (int i = 0; i < strArray2.length; i++) {

System.out.println(strArray2[i]);

}

System.out.println("----------------");

for (int i = 0; i < strArray3.length; i++) {

System.out.println(strArray3[i]);

}

System.out.println("----------------");

for (int i = 0; i < strArray4.length; i++) {

System.out.println(strArray4[i]);

}

}

}

/*

* 正则表达式的分隔

* 有如下一个字符串"91 27 46 38 50"

* 请写出代码实现输出结果是"27 38 46 50 91"

*

* 分析:

* A定义一个字符串

* B把字符串进行分割,得到一个字符串数组

* C把字符串数组转换成int数组

* D对int数组排序

* E把排序后的int数组组装成一个字符串

* F输出字符串

* */

import java.util.Arrays;

/*

* 正则表达式的分隔

* 有如下一个字符串"91 27 46 38 50"

* 请写出代码实现输出结果是"27 38 46 50 91"

*

* 分析:

* A定义一个字符串

* B把字符串进行分割,得到一个字符串数组

* C把字符串数组转换成int数组

* D对int数组排序

* E把排序后的int数组组装成一个字符串

* F输出字符串

* */

public class IntegerDemo {

public static void main(String[] args) {

// TODO Auto-generated method stub

// A定义一个字符串

String ages = "91 27 46 38 50";

String regex = " ";

// B把字符串进行分割,得到一个字符串数组

String strArray[] = ages.split(regex);

int arr[] = new int[strArray.length];

// C把字符串数组转换成int数组

for (int i = 0; i < arr.length; i++) {

arr[i] = Integer.parseInt(strArray[i]);

}

// D对int数组排序

Arrays.sort(arr);

// E把排序后的int数组组装成一个字符串

StringBuilder sb = new StringBuilder();

for (int i = 0; i < arr.length; i++) {

sb.append(arr[i]).append(" ");

}

String result = sb.toString().trim();

// F输出字符串

System.out.println(result);

}

}

/*

* 把数字替换成*

* */

/*

* 把数字替换成*

* */

public class IntegerDemo {

public static void main(String[] args) {

// TODO Auto-generated method stub

// A定义一个字符串

String s = "hello1234worldj622112345678ava";

String regex = "\\d+";

String ss = "*";

// B把字符串进行分割,得到一个字符串数组

String result = s.replaceAll(regex, ss);

System.out.println(result);

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值