由于为了看到效果,这里使用一个公共的输出类只控制输出:
package test;
public class Print{
public static void println(Object o){
System.out.println(o);
}
public static void print(Object o){
System.out.print(o);
}
}
package test;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
import static test.Print.*;
/*
*认识正则表达式的概念
*用途:
*1、字符串匹配;
*2、字符串查找;
*3、字符串替换。
*/
public class Test{
public static void main(String[] args){
println("abc".matches("..."));
println("abc9796fa56j".replaceAll("\\d","_")); //把所有数字替换成下划线
Pattern ptn = Pattern.compile("[a-z]{3}"); //匹配任意三个连续的英文字符
Matcher mt = ptn.matcher("bey");
println(mt.matches());
//上面的三句话可以用一句来表达
println("bey".matches("[a-z]{3}"));
}
}
package test;
import java.util.regex.*;
import static test.Print.*;
/*
* 预定义字符类
* \\\\表示\斜杠
* . 任何字符(与行结束符可能匹配也可能不匹配)
* \d 数字:[0-9]
* \D 非数字: [^0-9]
* \s 空白字符:[\t\n\x0B\f\r]
* \S 非空白字符:[^\s]
* \w 单词字符:[a-zA-Z_0-9]
* \W 非单词字符:[^\w]
* 注意:\s匹配\r,\n,\r,\f和空格
*/
public class Demo1{
public static void main(String[] args){
//判断斜杠
println("0:" + "\\".matches("\\\\"));
//判断任意字符
println("1:" + "a".matches(".")); //返回true
//判断数字字符
println("2:" + "8".matches("\\d")); //判断是否是数字,返回true
println("3:" + "89".matches("\\d")); //只能用于判断一个数字,返回false
println("4:" + "7".matches("\\D")); //由于7是数字字符,所以返回false
println("5:" + "&".matches("\\D")); //返回true
//空白字符
println("6:" + " ".matches("\\s")); //返回true
println("7:" + "7".matches("\\s")); //返回false
println("8:" + " ".matches("\\S")); //返回false
//单词字符
println("9:" + "+".matches("\\w")); //返回false
println("10:" + "7".matches("\\w")); //返回true
println("11:" + "_".matches("\\W")); //返回false
println("12:" + "b".matches("\\w")); //返回true
//特殊字符
println("13:" + "\n".matches("\\s")); //返回true
}
}
package test;
import java.util.regex.*;
import static test.Print.*;
/*
* Greedy 数量词
* X? X,一次或一次也没有
* X* X,零次或多次
* X+ X,一次或多次
* X{n} X,恰好 n 次
* X{n,} X,至少 n 次
* X{n,m} X,至少 n 次,但是不超过 m 次
*
*/
public class Demo2{
public static void main(String[] args){
println("1: " + "ab".matches("ab")); //精确匹配
println("2: " + "a".matches("a?")); //a可以出现一次,也可以没有
println("3: " + "b".matches("a?"));
println("4: " + "".matches("a*")); //a可以出现零次或多次
println("5: " + "aa".matches("a*"));
println("6: " + "".matches("a+")); //a必须出现一次或多次
println("7: " + "aaa".matches("a+"));
println("8: " + "a".matches("a{3}")); //a必须出现恰好n次
println("9: " + "aaa".matches("a{3}"));
println("10: " + "a".matches("a{3,7}")); //a必须出现最少n次,最多m次
println("11: " + "aaaa".matches("a{3,7}"));
//下面是自我提高练习
println("基本判断一个ip:");
print("判断192.168.10.8是不是ip地址:");
println("192.168.10.8".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"));
print("判断192.168.baby.8是不是ip地址:");
println("192.168.baby.8".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"));
//上面的也可以使用Pattern来判断
println("使用Pattern来实现");
Pattern pt = Pattern.compile("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}");
print("判断192.168.10.8是不是ip地址:");
println(pt.matcher("192.168.10.8").matches());
//判断EMAIL地址
println("EMAIL判断");
pt = Pattern.compile("[a-zA-Z0-9|_|-]{3,}@[a-zA-Z0-9]{3,}\\.[a-zA-Z0-9]{2,}");
print("判断beyondqinghua@gmail.com是否是Eamil地址:");
println(pt.matcher("beyondqinghua@gmail.com").matches());
print("判断116203610beyond@gmail.com是否是Eamil地址:");
println(pt.matcher("116203610beyond@gmail.com").matches());
print("判断116203610_beyond-life@gmail.com是否是Eamil地址:");
println(pt.matcher("116203610_beyond-life@gmail.com").matches());
print("判断116203610*beyond-life@gmail.com是否是Eamil地址:");
println(pt.matcher("116203610*beyond-life@gmail.com").matches());
}
}
分享到:
相关推荐
这篇学习笔记将深入探讨JavaScript正则表达式的概念、语法和实际应用。 一、正则表达式基础 1. 创建正则表达式: - 字面量表示法:`/pattern/flags` - 构造函数:`new RegExp('pattern', 'flags')` 2. 常见的...
Java中的正则表达式支持广泛的标准和特性,是进行文本处理任务的理想选择之一。本文将通过一系列示例来介绍Java正则表达式的基础知识及其应用场景。 #### 二、Java正则表达式基本语法 在Java中使用正则表达式前,...
正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、搜索和替换等场景。它通过一种简洁而强大的语法来定义一系列字符或字符组合,帮助程序员快速准确地定位和...
在IT行业中,掌握正则表达式是提升工作效率的关键技能之一。"超经典正则表达式测试工具"提供了对正则表达式的全方位测试和学习环境,帮助用户理解和应用正则表达式。 该工具具有以下主要功能: 1. **测试正则...
在“java笔记之正则表达式”这篇笔记中,作者深入探讨了正则表达式的基本概念、操作方法以及在Java中的应用。 首先,正则表达式(Regular Expression)是一组符合特定规则的字符序列,主要用于字符串的查找、匹配、...
Java正则表达式是编程语言Java中的一个强大工具,用于处理字符串模式匹配和搜索替换操作。...对于“暑假培训学习笔记之 java正则表达式”这个主题,深入学习这些知识点将有助于提升你在Java编程中的文本处理能力。
正则表达式(Regular Expressions)是一种专门用来处理字符串的模式匹配技术。它可以用来字符串匹配、字符串查找、字符串替换等。 正则表达式语法 1. 普通字符:字母、数字、汉字、下划线,以及没有特殊定义的标点...
### 正则表达式学习笔记 #### 一、正则表达式概述 正则表达式是一种强大的文本处理工具,能够帮助我们完成各种复杂的字符串匹配、提取、替换等操作。正则表达式通过定义一系列规则来匹配字符串中的模式,广泛应用...
正则表达式是JavaScript中用于处理字符串的强大工具之一。它可以帮助我们查找、替换或提取文本中的特定模式。在JavaScript中创建正则表达式有两种基本方法: 1. **字面量方式**: ```javascript var reg = /...
在IT行业中,熟练掌握正则表达式是提高工作效率的关键技能之一。 首先,我们来看看“java正则表达式大全(参考).md”这个文件名,这很可能是一个关于Java语言中正则表达式的详细指南或教程。Java中的正则表达式使用`...
想要学习 Python 爬虫 , 首先需要了解一下正则表达式的使用,下面我们就来看看如何使用。 . 的使用这个时候的点就相当于一个占位符,可以匹配任意一个字符,什么意思呢?看个例子就知道 import re content = ...
本文实例讲述了ES6正则表达式...第二种情况是,参数是一个正则表示式,这时会返回一个原有正则表达式的拷贝。 var regex = new RegExp(/xyz/i); // 等价于 var regex = /xyz/i; 但是,ES5不允许此时使用第二个参数,
Python学习之路,点击有全套Python笔记 常用特殊符号和字符: 匹配一个范围[]:[A-Z0-9] 匹配前面出现的正则表达式任意多次,包含0次 *:[abc]* 匹配前面出现的正则表达式0次或1次 ?:a? 匹配前面出现的正则表达式一...
总的来说,这个压缩包中的源码和学习笔记是深入理解并熟练运用Java多线程、反射、泛型和正则表达式的宝贵资源。通过研究这些实例,开发者不仅可以巩固理论知识,还能提升实际编程技巧,从而在日常工作中编写出更加...
深入理解正则表达式是每个程序员或数据处理人员必备的技能之一。 1. **基础概念** - **元字符**: 如`.`、`*`、`+`、`?`、`^`、`$`、`\`等,它们在正则表达式中有特殊的含义。 - **量词**: `*`表示零个或多个,`+`...
一、Re(正则表达式)库入门 1、正则表达式的概念 (1)正则表达式的定义 (2)正则表达式的概念 (3)正则表达式的举例 (4)正则表达式的特点 (5)正则表达式在文本处理中十分常用 (6)正则表达式的使用 2、正则...