Java正则表达式

简介:
1、简单认识正则表达式的概念
p( "abc".matches( "...")); //'.'代表字符
    p( "a8729a".replaceAll( "\\d""-"));//  '\d'代表数字, 由于java中‘\’的转义,所以需要2个‘\’
    Pattern p = Pattern.compile( "[a-z]{3}");//匹配a和z之间的3个字符, 先编译后效率更高
    Matcher m = p.matcher( "fgh");
    p(m.matches());
    p( "fgha".matches( "[a-z]{3}"));

2、初步认识. * + ?
.:匹配1个字符
*:匹配任意次
+:匹配至少1次
?: 匹配0或1次

p( "a".matches( "."));
    p( "aa".matches( "aa"));
    p( "aaaa".matches( "a*"));
    p( "aaaa".matches( "a+"));
    p( "".matches("a*"));
    p( "aaaa".matches( "a?")); //false
    p( "".matches("a?"));
    p( "a".matches( "a?"));
    p( "214523145234532".matches( "\\d{3,100}"));
    p( "192.168.0.aaa".matches( "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"));
    p( "192".matches( "[0-2][0-9][0-9]")); //[]代表范围

3、范围
p( "a".matches( "[abc]"));//取abc3个字符中的某一个
    p( "a".matches( "[^abc]"));//false,取除了abc之外的字符
    p( "A".matches( "[a-zA-Z]"));
    p( "A".matches( "[a-z]|[A-Z]"));和上面的【a-zA-Z】一样
    p( "A".matches( "[a-z[A-Z]]"));和上面的【a-zA-Z】一样
    p( "R".matches( "[A-Z&&[RFG]]"));  &&代表并且

4、认识\s \w \d \
p( " \n\r\t".matches( "\\s{4}"));
    p( " ".matches( "\\S")); //false
    p( "a_8".matches( "\\w{3}"));
    p( "abc888&^%".matches( "[a-z]{1,3}\\d+[&^#%]+"));
    p( "\\".matches("\\\\"));

5、
//POSIX Style
     p( "a".matches( "\\p{Lower}"));
        
         //boundary
        p( "hello sir".matches( "^h.*")); // 注意: ^在中括号里面代表取反,在中括号外面代表以什么为开头
        p( "hello sir".matches( ".*ir$"));
        p( "hello sir".matches( "^h[a-z]{1,3}o\\b.*"));
        p( "hellosir".matches( "^h[a-z]{1,3}o\\b.*"));
         //whilte lines
        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}."));
            
         //email
    p( "asdfasdfsafsf@dsdfsdf.com".matches( "[\\w[.-]]+@[\\w[.-]]+\\.[\\w]+"));



本文转自 tianya23 51CTO博客,原文链接:http://blog.51cto.com/tianya23/307582,如需转载请自行联系原作者
相关文章
|
2天前
|
Java
Java一分钟之运算符与表达式初探
【5月更文挑战第7天】本文介绍了Java中的主要运算符,包括算术、比较、逻辑、位、赋值和条件运算符。讨论了类型转换、运算顺序和逻辑短路等常见问题,并提供了避免错误的建议。通过代码示例展示了运算符的使用,强调理解运算符对于编写高效Java代码的重要性。
18 0
Java一分钟之运算符与表达式初探
|
5天前
|
安全 Java 程序员
Java 8新特性之Lambda表达式
【5月更文挑战第5天】 本文将介绍Java 8中的一个重要新特性——Lambda表达式。Lambda表达式是Java 8引入的一种简洁、易读的函数式编程语法,它允许我们将函数作为参数传递给方法,或者作为返回值。通过使用Lambda表达式,我们可以编写更简洁、更易读的代码,提高开发效率。
|
8天前
|
分布式计算 Java API
Java 8新特性之Lambda表达式与Stream API
【5月更文挑战第1天】本文将介绍Java 8中的两个重要特性:Lambda表达式和Stream API。Lambda表达式是一种新的函数式编程语法,可以简化代码并提高可读性。Stream API是一种用于处理集合的新工具,可以方便地进行数据操作和转换。通过结合Lambda表达式和Stream API,我们可以更加简洁高效地编写Java代码。
|
9天前
|
Java
java lambda 表达式中的双冒号和箭头的用法
java lambda 表达式中的双冒号和箭头的用法
|
10天前
|
Java API
Java 8新特性之Lambda表达式详解
【4月更文挑战第29天】本文将深入探讨Java 8中引入的Lambda表达式,这是Java历史上的一次重大变革。我们将详细解析Lambda表达式的基本概念,语法结构,以及如何在实际编程中应用。此外,我们还将探讨Lambda表达式与函数式接口的关系,以及它如何改变我们编写和理解Java代码的方式。
|
12天前
|
并行计算 Java API
【专栏】Java 8的Lambda表达式增强了函数式编程,允许以匿名函数形式传递行为
【4月更文挑战第27天】Java 8的Lambda表达式增强了函数式编程,允许以匿名函数形式传递行为。其基本语法`(params) -> expression/statements`,类型由参数推断,可引用final或effectively final的外部变量。Lambda广泛应用于集合操作(如Stream API)、并行流处理和GUI事件处理,简化代码并提高效率。通过实例,展示了Lambda在集合筛选、并行计算和事件处理中的应用,从而提高开发质量和效率。
|
14天前
|
Java 编译器 API
Java基础教程(17)-Java8中的lambda表达式和Stream、Optional
【4月更文挑战第17天】Lambda表达式是Java 8引入的函数式编程特性,允许函数作为参数或返回值。它有简洁的语法:`(parameters) -> expression 或 (parameters) ->{ statements; }`。FunctionalInterface注解用于标记单方法接口,可以用Lambda替换。
|
14天前
|
Java 测试技术 程序员
滚雪球学Java(21):Java正则表达式
【4月更文挑战第10天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
18 2
滚雪球学Java(21):Java正则表达式
|
15天前
|
人工智能 Java
Java之Lambda表达式的介绍
Java之Lambda表达式的介绍
|
15天前
|
Java
【Java高级】彻底弄懂lambda表达式(上)
【Java高级】彻底弄懂lambda表达式(上)
9 0