`
beyondqinghua
  • 浏览: 42387 次
  • 性别: Icon_minigender_1
  • 来自: 南昌
社区版块
存档分类
最新评论

学习笔记:正则表达式之一

    博客分类:
  • JSE
阅读更多

由于为了看到效果,这里使用一个公共的输出类只控制输出:

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());
	}
}
 
分享到:
评论
1 楼 kakukyowu 2008-04-22  
非常棒,顶!!!
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    javascript正则表达式学习笔记

    这篇学习笔记将深入探讨JavaScript正则表达式的概念、语法和实际应用。 一、正则表达式基础 1. 创建正则表达式: - 字面量表示法:`/pattern/flags` - 构造函数:`new RegExp('pattern', 'flags')` 2. 常见的...

    java正则表达式学习笔记

    Java中的正则表达式支持广泛的标准和特性,是进行文本处理任务的理想选择之一。本文将通过一系列示例来介绍Java正则表达式的基础知识及其应用场景。 #### 二、Java正则表达式基本语法 在Java中使用正则表达式前,...

    正则表达式基础学习笔记

    正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、搜索和替换等场景。它通过一种简洁而强大的语法来定义一系列字符或字符组合,帮助程序员快速准确地定位和...

    超经典正则表达式测试工具

    在IT行业中,掌握正则表达式是提升工作效率的关键技能之一。"超经典正则表达式测试工具"提供了对正则表达式的全方位测试和学习环境,帮助用户理解和应用正则表达式。 该工具具有以下主要功能: 1. **测试正则...

    java笔记之正则表达式

    在“java笔记之正则表达式”这篇笔记中,作者深入探讨了正则表达式的基本概念、操作方法以及在Java中的应用。 首先,正则表达式(Regular Expression)是一组符合特定规则的字符序列,主要用于字符串的查找、匹配、...

    暑假培训学习笔记之 java正则表达式

    Java正则表达式是编程语言Java中的一个强大工具,用于处理字符串模式匹配和搜索替换操作。...对于“暑假培训学习笔记之 java正则表达式”这个主题,深入学习这些知识点将有助于提升你在Java编程中的文本处理能力。

    正则表达式.docx

    正则表达式(Regular Expressions)是一种专门用来处理字符串的模式匹配技术。它可以用来字符串匹配、字符串查找、字符串替换等。 正则表达式语法 1. 普通字符:字母、数字、汉字、下划线,以及没有特殊定义的标点...

    正则表达式学习笔记正则表达式学习笔记

    ### 正则表达式学习笔记 #### 一、正则表达式概述 正则表达式是一种强大的文本处理工具,能够帮助我们完成各种复杂的字符串匹配、提取、替换等操作。正则表达式通过定义一系列规则来匹配字符串中的模式,广泛应用...

    JavaScript正则表达式学习资料笔记

    正则表达式是JavaScript中用于处理字符串的强大工具之一。它可以帮助我们查找、替换或提取文本中的特定模式。在JavaScript中创建正则表达式有两种基本方法: 1. **字面量方式**: ```javascript var reg = /...

    正则表达式笔记+源码!!!!!!

    在IT行业中,熟练掌握正则表达式是提高工作效率的关键技能之一。 首先,我们来看看“java正则表达式大全(参考).md”这个文件名,这很可能是一个关于Java语言中正则表达式的详细指南或教程。Java中的正则表达式使用`...

    Python 爬虫学习笔记之正则表达式

    想要学习 Python 爬虫 , 首先需要了解一下正则表达式的使用,下面我们就来看看如何使用。 . 的使用这个时候的点就相当于一个占位符,可以匹配任意一个字符,什么意思呢?看个例子就知道 import re content = ...

    ES6学习笔记之正则表达式和字符串正则方法分析

    本文实例讲述了ES6正则表达式...第二种情况是,参数是一个正则表示式,这时会返回一个原有正则表达式的拷贝。 var regex = new RegExp(/xyz/i); // 等价于 var regex = /xyz/i; 但是,ES5不允许此时使用第二个参数,

    Python—-正则表达式

    Python学习之路,点击有全套Python笔记 常用特殊符号和字符: 匹配一个范围[]:[A-Z0-9] 匹配前面出现的正则表达式任意多次,包含0次 *:[abc]* 匹配前面出现的正则表达式0次或1次 ?:a? 匹配前面出现的正则表达式一...

    基于Java的实例源码-多线程反射泛型及正则表达式学习笔记和源码.zip

    总的来说,这个压缩包中的源码和学习笔记是深入理解并熟练运用Java多线程、反射、泛型和正则表达式的宝贵资源。通过研究这些实例,开发者不仅可以巩固理论知识,还能提升实际编程技巧,从而在日常工作中编写出更加...

    正则表达式深入浅出.zip

    深入理解正则表达式是每个程序员或数据处理人员必备的技能之一。 1. **基础概念** - **元字符**: 如`.`、`*`、`+`、`?`、`^`、`$`、`\`等,它们在正则表达式中有特殊的含义。 - **量词**: `*`表示零个或多个,`+`...

    《Python网络爬虫与信息提取》第三周 网络爬虫之实战 学习笔记(一)Re(正则表达式)库入门

    一、Re(正则表达式)库入门 1、正则表达式的概念 (1)正则表达式的定义 (2)正则表达式的概念 (3)正则表达式的举例 (4)正则表达式的特点 (5)正则表达式在文本处理中十分常用 (6)正则表达式的使用 2、正则...

Global site tag (gtag.js) - Google Analytics