`
beyondqinghua
  • 浏览: 41734 次
  • 性别: 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. 常见的...

    正则表达式基础学习笔记

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

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

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

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

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

    正则表达式.docx

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

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

    在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、正则...

    05-python-sys模块简介-与操作系统进行交互-CSV文件和CSV模块-正则表达式

    这些笔记中,05.04-python-正则表达式和 re 模块.ipynb可能包含了关于如何使用正则表达式和re模块的实际示例和练习;05.02-python-与操作系统进行交互.ipynb可能讲解了如何利用sys模块与操作系统进行互动;05.03-...

    JavaScript高级程序设计(第3版)学习笔记12 js正则表达式

    一、正则表达式基础 1、普通字符:字母、数字、下划线、汉字以及所有没有特殊意义的字符,如ABC123。在匹配时,匹配与之相同的字符。 2、特殊字符:(需要时,使用反斜杠“\”进行转义) 字符 含义 字符 含义 ...

    python核心编程第二版笔记和常用的正则表达式总结.rar

    Python是当今世界上最受欢迎的编程语言之一,尤其在数据科学、机器学习和Web开发等领域有着广泛的应用。《Python核心编程》第二版是Wesley Chun所著的经典教程,它深入浅出地介绍了Python语言的核心概念和技术。这...

    暑假培训学习笔记之 java字符串拆分

    本篇暑假培训学习笔记将深入探讨如何使用Java进行字符串拆分,主要聚焦于利用正则表达式进行拆分的方法。 字符串拆分是将一个大的字符串依据特定的规则分割成多个子字符串的操作。在Java中,我们可以使用`String`类...

    JavaScript正则表达式迷你书之贪婪模式-学习笔记

    在使用修饰匹配次数的特殊符号时,有几种表示方法可以使同一个表达式能够匹配不同的次数,比如:”{m,n}”, “{m,}”, “?”, “*”, “+”,具体匹配的次数随被匹配的字符串而定。这种重复匹配不定次数的表达式在...

    《java学习》-java学习笔记.zip

    1. **正则表达式(正则.md)**: 正则表达式在Java中用于文本匹配和搜索,是处理字符串的强大工具。Java提供了`java.util.regex`包,包含了Pattern和Matcher类来支持正则表达式的编译和匹配操作。理解如何构建和...

Global site tag (gtag.js) - Google Analytics