Java中用到的正则表达式规则在java.util.regex.Pattern类中可以查到。
常用规则有:
1.字符
x 表示字符x。
\\ 表示\ , 第一个\是转义,.*[]^${}\+?|() 都需要转义。
\n 换行符('\u000A')。
\r 回车符('\u000D')。
2.字符类
[abc] 表示字符a或b或c。
[^abc] 表示除字符a,b,c以外的一个字符。
[a-zA-Z] 表示a到z或A到Z的所有字母中的其中。
[0-9] 表示0到9的数字
3.预定义字符类
. 表示任意字符,要表示.本身用\.
\d 表示0-9的数字,与[0-9]相同。
\w 表示单词字符,与[a-zA-Z_0-9]相同 ,字母数字下划线。
4.边界匹配器
^x 表示以x开头。
x$ 表示以x 结尾。如 ^abc$是指abc
\b 表示单词边界,单词字符之间那些非单词字符就是单词边界
5.数量词
x? 表示x出现0次或1次
x* 表示x出现0次到多次
x+ 表示x出现1次到多次
x{n} 表示x出现n次
x{n,} 表示x出现n次或更多次
x{n,m}表示x出现n次到m次
使用举例:
1. 判断功能
检查QQ号码:
package regex; import java.util.Scanner; /** * * 输入QQ号码,检查是否符合以下规则: * 1. 5-15位数字 * 2. 不以0开头 */ public class RegexDemo { /** * @param args */ public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入QQ号码:"); String qq = sc.nextLine(); System.out.println("检查结果:" + checkQQ(qq)); } public static boolean checkQQ(String qq) { // 或者 "[1-9]\\d{4,14}" return qq.matches("[1-9][0-9]{4,14}"); } }
2. 分割功能
String类的 String[] split(String regex)
public class SplitDemo { /** * @param args */ public static void main(String[] args) { String s = "18-24"; String regex = "-"; String[] strings = s.split(regex); int startAge = Integer.parseInt(strings[0]); int endAge = Integer.parseInt(strings[1]); System.out.println("Start age:" + startAge + " End age:" + endAge); String a1 = "a,b,c"; String[] arrayString1 = a1.split(","); for (int i = 0; i < arrayString1.length; i++) { System.out.println(arrayString1[i]); } System.out.println("----------------------"); String a2 = "a.b.c"; String[] arrayString2 = a2.split("\\."); for (int i = 0; i < arrayString2.length; i++) { System.out.println(arrayString2[i]); } System.out.println("----------------------"); String a3 = "a b c"; String[] arrayString3 = a3.split(" +"); for (int i = 0; i < arrayString3.length; i++) { System.out.println(arrayString3[i]); } System.out.println("----------------------"); String a4 = "C:\\Users\\zhenijia\\Documents\\ECE\\automated_test"; String[] arrayString4 = a4.split("\\\\"); for (int i = 0; i < arrayString4.length; i++) { System.out.println(arrayString4[i]); } System.out.println("----------------------"); } }
3.替换功能
String类的 String replaceAll(String regex, String replacement) 和 String replaceFirst(String regex, String replacement)
public static void main(String[] args) { String regex = "a*b"; String replace = "love"; String string = "abaabaaabb"; String replaceAll = string.replaceAll(regex, replace); String replaceFirst = string.replaceFirst(regex, replace); System.out.println("replaceAll:" + replaceAll); System.out.println("replaceFirst:" + replaceFirst); }
4.查找功能,使用Pattern和Matcher类
public static void main(String[] args) { // 查找该字符串中的3字母的单词 String s = "jin tian yao xia yu, qing da jia dai hao yu san."; Pattern p = Pattern.compile("\\b\\w{3}\\b"); Matcher m = p.matcher(s); // 注意,必须先find,才能group while (m.find()) { System.out.println(m.group()); } }
Pattern和Matcher类也可以做判断,基本格式是这样用:
Pattern p = Pattern.compile("\\b\\w{3}\\b"); Matcher m = p.matcher("jin"); return m.matches();
如果字符串整个匹配正则表达式的,就会返回true。
相关推荐
为了帮助开发者更好地掌握Java正则表达式技术,我们提供了一系列的Java正则表达式技巧大全,包括《Java正则表达式技巧大全》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧...
- 正则表达式中的特殊字符需要转义,如`\d`应写为`\\d`。 - 如果正则表达式在字符串中,需要额外的转义,如`"\\d\\d"`。 - 贪婪与非贪婪匹配:默认情况下,`*`, `+`, `?`是贪婪的,会尽可能多地匹配。如果在后面加上...
8. java正则表达式技巧大全:文章最后还提供了几个有关于java算法相关的内容,例如《Java正则表达式技巧大全》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java...
`在正则表达式中具有特殊含义,分别代表零个或多个、一个或多个、零个或一个前一个字符。 4. **范围处理** - 使用方括号`[]`定义字符范围,例如`[a-zA-Z]`表示匹配任何字母。 5. **预定义字符类** - `\s`:匹配...
在Java编程语言中,处理字符串和正则表达式是一项常见的任务。正则表达式是一种强大的文本模式匹配工具,可以用于搜索、替换或者提取符合特定规则的字符串。在本篇文章中,我们将深入探讨如何利用Java中的Xeger和...
Java正则表达式匹配工具是IT领域中一种强大的文本处理工具,它利用正则表达式(Regular Expression)的规则来查找、替换或者提取文本中的特定模式。正则表达式是一种特殊的字符序列,能够帮助程序员或者用户高效地...
本篇将围绕“使用Java正则表达式分析处理日志”这一主题,探讨如何利用Java的正则表达式功能来提取、过滤和操作日志数据。 首先,我们需要理解正则表达式的基本概念。正则表达式(Regular Expression)是一种模式...
2. **正则表达式中的特殊字符** 特殊字符是具有特定含义的字符,例如`\`用于转义,使得原本具有特殊意义的字符如`(`、`)`、`.`等变成普通字符。其他特殊字符如`\d`代表数字,`\s`代表空白字符,`\w`代表单词字符...
在 Java 中,使用正则表达式对象可以实现各种字符串匹配和提取操作。正则表达式对象主要通过 Pattern 和 Matcher 两个类来实现。下面详细介绍如何使用正则表达式对象实现正则获取功能。 一、基本概念 在使用正则...
java通过正则表达式匹配获取MAC(支持windows和Linux)
本资料"java_zhengze.rar"提供了对Java正则表达式的详细讲解,包括基本概念、元字符、预定义字符类以及各种匹配操作,对于Java开发者来说是一份非常实用的学习资源。 首先,我们来了解一下正则表达式的基石——元...
Java正则表达式是一种强大的文本处理工具,广泛用于验证字符串、查找特定模式和替换文本。在Java中,正则表达式提供了简洁而灵活的方式来处理字符串,使得编程人员能够以更高效的方式实现各种文本操作。 正则表达式...
Java正则表达式验证IP地址是指使用Java语言中的正则表达式来验证IP地址是否符合标准。IP地址是指在网络通信中用来标识设备的地址,它是一种逻辑地址,通过它可以找到网络中的设备。在Java中,可以使用正则表达式来...
### 常用Java正则表达式知识点 #### 一、引言 正则表达式是一种强大的工具,用于处理文本并查找模式。多种编程语言,包括Perl、PHP、Python、JavaScript以及Java等均内置了对正则表达式的支持。本文将详细介绍Java...
### 使用Java正则表达式实现一个简单的身份证号码验证 #### 一、背景介绍 身份证号码是中国公民的身份标识,由15位或18位数字组成(早期为15位,后改为18位)。其中,第18位是校验码,可能是数字0~9或者大写字母X。...
Java中的Xeger是一个非常有用的工具,它允许开发者根据指定的正则表达式生成随机的数据。Xeger是基于Java的org.apache.commons.text.RandomStringGenerator类和org.apache.commons.lang3.RandomStringUtils库的一个...
在本话题中,我们将探讨如何使用PowerBuilder 11.5这一经典的开发环境来实现正则表达式功能。PowerBuilder是一款基于对象的快速应用程序开发工具,尤其适合于数据库应用系统的开发。 标题"PB实现的正则表达式"表明...
Java正则表达式是编程语言Java中的一个强大工具,它用于模式匹配、数据验证和文本检索替换。在Java中,正则表达式是通过java.util.regex包提供的接口和类来实现的。`regex-smart.jar`这个库显然是为了简化开发者在...
在Java中使用正则表达式来判断字符串是否符合整数、小数或实数的格式是一种常见且有效的做法。在编程中,我们经常需要对输入的字符串进行格式验证,以确保它们符合预期的数值格式,尤其是在处理财务数据、用户输入...
这个合集提供的HTML和Java正则表达式实例,为开发者提供了一个快速参考的工具,帮助他们在开发过程中快速有效地实现数据验证功能。理解并熟练运用这些正则表达式,对于提高代码质量和用户体验都有极大的帮助。在实际...