`

正则表达式笔记

    博客分类:
  • java
 
阅读更多
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
? 一次或一次也没有
 * 零次或多次
+ 一次或多次
{n}	恰好n次
{n,}至少 n 次
{n,m} 至少 n 次,但是不超过 m 次

[abc]	a、b 或 c(简单类)
[^abc]	任何字符,除了 a、b 或 c(否定)
[a-zA-Z]	a 到 z 或 A 到 Z,两头的字母包括在内(范围)
[a-d[m-p]]	a 到 d 或 m 到 p:[a-dm-p](并集)
[a-z&&[def]]	d、e 或 f(交集)
[a-z&&[^bc]]	a 到 z,除了 b 和 c:[ad-z](减去)
[a-z&&[^m-p]]	a 到 z,而非 m 到 p:[a-lq-z](减去)

^	行的开头
$	行的结尾
\b	单词边界

.	任何字符(与行结束符可能匹配也可能不匹配)
\d	数字:[0-9]
\D	非数字: [^0-9]
\s	空白字符:[ \t\n\x0B\f\r]
\S	非空白字符:[^\s]
\w	单词字符:[a-zA-Z_0-9]
\W	非单词字符:[^\w]

\\	反斜线字符
 */

public class Regex {

	public static void main(String[] args){

		p("a".matches("."));//1个字符
		p("aa".matches("aa"));
		p("aaaa".matches("a*"));//0次或多次
		p("aaaa".matches("a+"));//1次或多次
		p("".matches("a*"));//0次或多次
		p("aa".matches("a?"));//1次或0次


		p("".matches("a?"));
		p("a".matches("a?"));
		p("1231231211212".matches("\\d{3,100}"));
		p("192.168.0.2".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"));
		p("392".matches("[0-2][0-9][0-9]"));


		p("a".matches("[abc]"));
		p("z".matches("[^abc]"));
		p("A".matches("[a-zA-Z]"));
		p("A".matches("[a-z]|[A-Z]"));
		p("A".matches("[a-z[A-Z]]"));
		p("12".matches("[0-9&&[1]]"));

		p(" \n\r\t".matches("\\s{4}"));
		p(" ".matches("\\s"));
		p("a_8".matches("\\w{3}"));
		p("abc88&^%".matches("[a-z]{1,3}\\d+[%^&^]+"));
		p("\\".matches("\\\\"));

		//0359-1234567  021-12345678
		p("0359-1234567".matches("^\\d{4}-\\d{7}$|^\\d{3}-\\d{8}$"));
		p("021-12345678".matches("\\d{4}-\\d{7}|\\d{3}-\\d{8}"));


		p("hello sir".matches("^h.*"));
		p("hello sir".matches(".*ir$"));
		p("hello sir".matches("^h[a-z]{1,3}o\\s[a-z]+$"));
		p("hellosir".matches("^h[a-z]{1,3}o\\b.*"));
		p("\n".matches("^[\\s&&[\\n]]*\\n$"));

		p("aaa 8888c".matches(".*\\d{4}."));
		p("aaa 8888c".matches(".*\\b\\d{4}."));
		p("aaa8888c".matches(".*\\d{4}."));
		p("aaa8888c".matches(".*\\b\\d{4}."));


		//abc@163.com
		p("abc@163.com".matches("^.+@.+\\..+$"));
                p("abc@163.com".matches("\\w[.-]+@\\w[.-]+\\.[\\w]+"));

		Pattern p = Pattern.compile("java",Pattern.CASE_INSENSITIVE);
		Matcher m = p.matcher("java Java JAVA javA Ilove JAVa you hate JavA ddddadf");

		StringBuffer buf = new StringBuffer();
		int i=0;
		while(m.find()){
			i++;
			if(i%2==0){
				m.appendReplacement(buf, "java");
			}else{
				m.appendReplacement(buf, "JAVA");
			}
		}

		m.appendTail(buf);
		p(buf);


		//分组
		Pattern p1 = Pattern.compile("(\\d{3,5})([a-z]{2})");
		String s = "321aa-11111bb-123cc-00";
		Matcher m1 = p1.matcher(s);
		while(m1.find()){
			//			p(m.group());
			p(m1.group(1));
			//			p(m.group(2));
		}
	}

	public static void p(Object s) {
		System.out.println(s);
	}

}

 

分享到:
评论

相关推荐

    6正则表达式笔记[借鉴].pdf

    正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配、搜索、替换和提取信息。它在软件开发中广泛应用于数据验证、文本处理、输入校验等场景。正则表达式通过特殊的语法和运算符,允许程序员构建灵活且...

    正则表达式笔记归纳

    ### 正则表达式基础知识与应用 #### 一、正则表达式的定义及用途 正则表达式(Regular Expression)是一种强大的文本处理工具,能够帮助我们实现字符串的搜索、替换等操作。它在多种编程语言中都有应用,尤其是在...

    Python正则表达式笔记

    Python正则表达式笔记 正则表达式是 Python 中的一种强大工具,用于匹配和处理字符串。下面是 Python 正则表达式笔记中的一些重要知识点: 1. 导入模块:在使用正则表达式之前,需要导入 re 模块。import re 2. ...

    js正则表达式笔记,直接运行

    标题与描述中的“js正则表达式笔记,直接运行”明确指出这是一份关于JavaScript正则表达式的笔记,其中包含了可以直接执行的代码示例。正则表达式在编程中是一种非常强大的工具,用于处理字符串模式匹配、搜索和替换...

    java正则表达式学习笔记

    ### Java正则表达式基础知识与应用 #### 一、引言 正则表达式是一种强大的文本处理工具,它能够帮助开发者高效地进行字符串的搜索、替换等操作。Java中的正则表达式支持广泛的标准和特性,是进行文本处理任务的理想...

    正则表达式笔记.docx

    python正则表达式笔记

    [小小明]Python正则表达式全套笔记v0.3(1.8万字干货)

    Python正则表达式全套笔记v0.3 本文档是小小明个人笔记,涵盖了正则表达式的各个方面,包括各种模式、分组、断言、匹配、查找、替换和切割等。文档中提供了详细的正则匹配规则表,涵盖了基本字符规则、预定义字符集...

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

    正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、搜索替换等场景。在IT行业中,熟练掌握正则表达式是提高工作效率的关键技能之一。 首先,我们来看看...

    正则表达式学习笔记

    ### 正则表达式学习笔记 #### 一、正则表达式概述 正则表达式是一种强有力的模式匹配工具,广泛应用于各种编程语言中,用于文本处理。正则表达式允许用户定义复杂的查找模式,这对于数据验证、搜索和替换操作特别...

    Java正则表达式笔记.pdf

    Java正则表达式是编程语言Java中用于处理文本的强大工具,它允许开发人员根据特定模式匹配、搜索和替换文本。在Java 2中引入的`java.util.regex`包提供了全面的支持,使得正则表达式的使用变得更为便捷。本文将探讨...

    javascript正则表达式学习笔记

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

    java正则表达式笔记

    本笔记将深入探讨正则表达式的基础概念、语法特点以及在Java中的应用。 1. **正则表达式基础** - **元字符**:正则表达式中的特殊字符,如`.`、`*`、`+`、`?`、`^`、`$`、`\`、`|`、`(`、`)`等,它们在正则表达式...

    正则表达式函数笔记.php

    php正则表达式笔记,本人手写的 //----正则匹配----- $p = '/example/' $str = "I am an example"; preg_match($p,$str); //如果$str中含有$p两个/中间的内容(内容不要求完全相同,要求为包含于关系),则返回真 //...

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

    4. **学习正则的学习笔记**:可能包含一份详细的正则表达式学习资料,涵盖了基础概念如元字符、量词、字符类等,以及高级特性如分组、后向引用、预查等,方便用户系统学习。 5. **正则表达式参考手册**:可能提供了...

    正则表达式大全笔记总结

    ### 正则表达式大全笔记总结 #### 一、引言 正则表达式是一种用于匹配字符串的强大工具,在数据处理、文本分析等场景下极为常见。本文将对几个常见的正则表达式应用场景进行总结,包括中国电话号码验证、邮政编码...

    正则表达式系统教程.RAR

    正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配和搜索替换。它在编程、数据分析、文本挖掘等领域有着广泛的应用。本教程旨在帮助你深入理解和熟练掌握正则表达式,通过学习,你可以有效地查找、...

    python正则表达式详解笔记,python正则表达式教学.doc

    ### Python正则表达式详解 #### 一、正则表达式概述 正则表达式(Regular Expression)是一种在计算机科学领域广泛使用的模式匹配工具。它主要用于处理文本数据,包括搜索、替换以及提取文本中的特定模式。许多...

Global site tag (gtag.js) - Google Analytics