IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> JAVA面向对象正则表达式 -> 正文阅读

[Java知识库]JAVA面向对象正则表达式

?指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串,其实就是一种规则,有自己特殊的应用

作用:注册邮箱,邮箱有用户名和密码,一般会对其限制长度,这个限制长度的事情就是正则表达式做的

校验号码,要求必须是5-15位数字,0不能开头,必须都是数字

不用正则表达式的代码实现?

import java.util.Scanner;

public class demo {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入你想要校验的qq号");
		String s = sc.nextLine();
		System.out.println(qq(s));
	}
	public static boolean qq(String qq) {
		boolean flag = true;
		if(qq.length()>=5 && qq.length() <= 15) {
			if(!qq.startsWith("0")) {
				char[] arr = qq.toCharArray();
				for (int i=0;i<arr.length;i++) {
					char ch=arr[i];
					if(!(ch>='0'&&ch<='9')) {
						flag = false;
						break;
					}
				}
			}else {
				flag = false;
			}
		}
		else {
			flag = false;
		}
		return flag;
	}
}

正则表达式代码

import java.util.Scanner;

public class biaodashi {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入你想要校验的qq号");
		String s = sc.nextLine();
		String regex = "[1-9]\\d{4,14}";
		System.out.println(s.matches(regex));
	}

}

常见对象字符类

[代表单个字符

[a,b,c]a,b或c(简单类)

[^abc]任何字符除了ab或c(否定)

[a-zA-Z]a到z或者A到Z两头的字母包含在内

[a-d[m-p]]a到d或者m-p

[a-z&&[def]]d,e或f交集

[a-z&&[^bc]]a-z除了b或c

[a-z&&[^m-p]]a-z而非m-p

预定义字符类?

\代表转义字符,如果想要表示\d的话需要\\d

\d数字[0-9]

\D非数字[^0-9]

\s空白字符[\t\n\x0B\f\r]

\S非空白字符[^\s]

\w单词字符[a-zA-z_0-9]

\W非单词字符[^\w]

数量词

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

X*X? ? ? ?零次或多次

X+X? ? ? ?一次或多次

X{n}X? ? 恰好n次

X{n,}X? 至少n次

X{n,m}X 至少n次最多m次

正则表达式的分割功能

public class demo1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String s = "金顶点 郭aa 李daone";
		String[] arr = s.split(" ");
		for(int i =0 ;i <arr.length;i++) {
			System.out.println(arr[i]);
		}
	}
//.代表任意字符,非要用的话要用\\.
}

?把给定字符串中的数字排序

将字符串“91? ? ?27? ? 46? ? ? 38? ? 50”排序输出

import java.util.Arrays;

public class demo7 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String s = "91 27 46 38 50";
		String[] arr1 = s.split(" ");
		int[] arr = new int[arr1.length];
		for (int i = 0;i<arr1.length;i++) {
			arr[i] = Integer.parseInt(arr1[i]);
		}
		Arrays.sort(arr);
		StringBuilder sb = new StringBuilder();
		for(int i=0;i<arr.length;i++) {
			if(i==arr.length-1) {
				sb.append(arr[i]);
			}
			else {
				sb.append(arr[i]+" ");
			}
		}
		System.out.println(sb);
		
	}

}

?后面用string字符串接收的话会产生许多垃圾啊,用StringBuilder更节省空间

正则表达式的替换功能

public String replace(String reqex,String replacement)

public class demo2 {
	public static void main(String[] args) {
		String s = "park11chan27yeol";
		String regex = "\\d";
		String s2 = s.replaceAll(regex, "");
		System.out.println(s2);
	}

}

?正则表达式的分组功能

((A)(B(C)))

(A

(B(C))

(C)

例题:

分割叠词?

public class Music {
	public static void main(String[] args) {
		//叠词分割 快快乐乐,高高兴兴
		String regex ="(.)\\1(.)\\2";             //1代表第一组又出现一次
		System.out.println("快快乐乐".matches(regex));
		System.out.println("快乐乐乐".matches(regex)); 
		//叠词分割 ABAB
		String regex1="(..)\\1";
		System.out.println("啊哈啊哈".matches(regex1));
		System.out.println("________________________________________");
		//按照叠词切割sdqqfgkkkhjppppkl
		String s ="sdqqfgkkkhjppppkl";
		String regex2="(.)\\1+";             //+代表第一组出现一次到多次
		String[] arr=s.split(regex2);
		for(int i=0;i<arr.length;i++){
			System.out.println(arr[i]);
		}
		System.out.println("_________________________________________________");
		//替换:我我....我...我.要...要要...要学....学学..学.编..编编.编.程.程..程还原至我要学编程
		String s1="我我....我...我.要...要要...要学....学学..学.编..编编.编.程.程..程";
		String s2=s1.replaceAll("\\.+","");
		String s3=s2.replaceAll("(.)\\1+", "$1");     //$1代表第一组中的内容
		System.out.println(s3);
	}
}

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-01-03 15:56:35  更:2022-01-03 15:58:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:05:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码