Java正则表达式

简介: 一、工具1.1 正则表达式验证工具http://regexr.com/1.2 练习工具https://alf.nu/RegexGolf二、例子使用正则表达式匹配以下文本,很明显所有文本都是以ick结尾的,对应的正则为ick$MickRickallocochickbacktrickbestickcandlestickjava中处理正则表达式的类位于java.util.regex包中,包含pattern、matcher和PatternSyntaxException类。

一、工具

1.1 正则表达式验证工具

http://regexr.com/

1.2 练习工具

https://alf.nu/RegexGolf

二、例子

使用正则表达式匹配以下文本,很明显所有文本都是以ick结尾的,对应的正则为ick$

Mick
Rick
allocochick
backtrick
bestick
candlestick

java中处理正则表达式的类位于java.util.regex包中,包含pattern、matcher和PatternSyntaxException类。
判断010-62761234是不是一个电话号码:

import java.util.regex.Pattern;

public class ResTest1 {

    public static void main(String[] args) {

        String str = "010-62731234";
        String pattern = "0\\d{2}-\\d{8}";
        boolean isMatch = Pattern.matches(pattern, str);

        System.out.println(isMatch);

    }
}

正则表达式语法:

子表达式 匹配对应
^ 匹配一行的开头
$ 匹配一行的结尾
. 匹配除了换行符的任何单个字符,也可以利用 m 选项允许它匹配换行符
[…] 匹配括号内的任意单个字符。
[^…] 匹配不在括号内的任意单个字符。
\A 整个字符串的开始
\z 整个字符串的结束
\Z 整个字符串的结束,除了最后一行的结束符
re* 匹配0或者更多的前表达事件
re+ 匹配1个或更多的之前的事件
re? 匹配0或者1件前表达事件
re{ n} 匹配特定的n个前表达事件
re{ n,} 匹配n或者更多的前表达事件
re{ n, m} 匹配至少n最多m件前表达事件
a|b 匹配a或者b
(re) 正则表达式组匹配文本记忆
(?: re) 没有匹配文本记忆的正则表达式组
(?> re) 匹配无回溯的独立的模式
\w 匹配单词字符
\W 匹配非单词字符
\s 匹配空格。等价于 [\t\n\r\f]
\S 匹配非空格
\d 匹配数字. 等价于 [0-9]
\D 匹配非数字
\A 匹配字符串的开始
\Z 匹配字符串的末尾,如果存在新的一行,则匹配新的一行之前
\z 匹配字符串的末尾
\G 匹配上一次匹配结束的地方
\n 返回参考捕获组号“N”
\b 不在括号里时匹配单词边界。在括号里时匹配退格键
\B 匹配非词边界
\n, \t, etc. 匹配换行符,回车符,制表符,等
\Q 引用字符的初始,结束于\E
\E 结束由\Q开始的引用
目录
相关文章
|
9天前
|
自然语言处理 安全 Java
Aviator Java 表达式引擎
AviatorScript 是一门高性能、轻量级寄宿于 JVM 之上的脚本语言。
25 10
|
6天前
|
Java API 数据处理
探索Java中的Lambda表达式与Stream API
【10月更文挑战第22天】 在Java编程中,Lambda表达式和Stream API是两个强大的功能,它们极大地简化了代码的编写和提高了开发效率。本文将深入探讨这两个概念的基本用法、优势以及在实际项目中的应用案例,帮助读者更好地理解和运用这些现代Java特性。
|
11天前
|
移动开发 Java Windows
Java 匹配\r 和 \n 的正则表达式如何编写
【10月更文挑战第19天】Java 匹配\r 和 \n 的正则表达式如何编写
49 3
|
23天前
|
Java 数据库
案例一:去掉数据库某列中的所有英文,利用java正则表达式去做,核心:去掉字符串中的英文
这篇文章介绍了如何使用Java正则表达式从数据库某列中去除所有英文字符。
36 15
|
10天前
|
Java API
[Java]Lambda表达式
本文主要介绍了Java中的Lambda表达式,包括其优化匿名内部类的方式、使用规范、内置函数式接口及方法引用等内容。文章详细解析了Lambda的基础语法、参数列表、方法体的简化规则,以及如何利用Lambda优化代码。此外,还探讨了Lambda的作用域和引用规则,强调了对局部变量、成员变量和常量的访问限制,旨在帮助读者全面理解和掌握Lambda表达式的应用。
10 0
[Java]Lambda表达式
|
19天前
|
Java 程序员 API
Java中的Lambda表达式:简化代码的秘密武器
【10月更文挑战第11天】 在Java编程中,Lambda表达式是一种简洁而强大的工具,它允许我们将函数作为参数传递给其他方法。本文将介绍Lambda表达式的基本概念、使用方法以及在实际项目中的应用案例,帮助你更好地理解和利用这一特性来简化代码。
21 8
|
22天前
|
并行计算 Java API
Java中的Lambda表达式及其应用
本文将深入探讨Java中的Lambda表达式,从基本概念到实际应用。我们将了解Lambda表达式的定义、优势和使用场景,并通过实例展示其在Java编程中的强大功能。无论是初学者还是经验丰富的开发者,都可以从中获得有价值的见解。
|
28天前
|
IDE Java 测试技术
Java“非法的表达式开头"是什么原因引起的,怎么解决
“非法的表达式开头”通常是由于在Java代码中错误地放置了表达式或语法错误导致的。例如,在应该是一个语句的地方写了一个表达式,或者在表达式内部出现了不正确的结构。解决方法是检查并修正相关语法错误,确保表达式的正确性和位置适当性。检查括号是否配对完整,以及变量声明、运算符使用是否符合规范也是必要的步骤。
|
28天前
|
IDE Java 开发工具
Java“未封闭的 String 表达式”怎么解决
要解决Java中的“未封闭的 String 表示”问题,需检查并修正字符串字面量,确保每个字符串被正确地用双引号括起来。若字符串跨越多行,可使用字符串连接操作符(+)或引入文本块(JDK 13 及以上版本)。这能帮助避免语法错误,并使代码更整洁易读。
|
25天前
|
并行计算 Java API
探索Java中的Lambda表达式:简化代码,提高可读性
【10月更文挑战第5天】Lambda表达式在Java 8中引入,旨在简化集合操作和并行计算。本文通过介绍Lambda表达式的基本概念、语法结构以及实际应用示例,展示了如何利用这一特性编写更加简洁、易读的代码。我们将从Lambda的基础入手,逐步深入到其在函数式接口中的应用,并探讨其对Java编程范式的影响。