`
duanyong
  • 浏览: 93518 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java正则表达式

    博客分类:
  • j2ee
阅读更多

从学javascript到java,从asp到asp.net,不管那种语言,正则都是我难于愈合的痛。今天晚上准备一刀切,搞定正则。
开始,翻书。《JDK 学习笔记》,《think in java 3th》。

java是在j2se 1.4之后支持正则的,在java.util.regex.Pattern类中有相关的正则表达式的信息。

下面的这些概念要记牢

  • 特殊字符含义

<!-- @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm } -->

\xhh			十六进制\0xhh的字符
\uhhh			十六进制0xhhhh表示的Unicode字符
\t			制表符
\n			换行符
\r			回车
\f			换页
\e			转义
  • 字符对比
方法				说明

.				符合任一个字符
\d				符合0-9任一个数字字符(digital)
\D				对 \d 取反
\s				符合\t, \n, \x0B, \f, \r等空格字符(space)
\w				只要是字母和数字都符合(word? 貌似不像,也不管了,就这样记忆吧)
\W				对 \w 取反

 

split 来简单测试一下:

		String text = "abcdebcadxbc";
		String[] tokens = text.split(".bc");
		for (String token : tokens) {
			log(token);
		} 

结果:
(空格)
d
ad

怎么有空格呢!再试,这次把tokens的长度也码出来。

		log(tokens.length);

 结果:3。难道是匹配开头的也算?再试:

		String[] tokenss = "xiaox".split(".iao");
		for (String token : tokenss) {
			log(token);
		}
		
		log(tokenss.length);

  结果:

(空格)
x
2
果真。另外还发现一个问题,当split与字符不匹配时,返回一个长度为1的数组,而字符串就是第一个元素。

 

  • 设置一组字符串的范围
范围			作用

[abc]			符合a,b,c其中一个字符
[^abc]			只要不是a,b,c这三个字符都符合
[a-zA-Z]			字符大小定都符合
[a-dm-p]		字符a-d或者d-m的字符都符合
[a-z&&[acd]]		字符acd其中一个与a-z字符的交集
[a-z&&[^bc]]		字符a-z与bc的差集,差不多意思就是bc除外的a-z的字符

上面的需要结合贪婪量词(JDK 5学习笔记 P127,专业词,不明白啥意思)来对字符串进行匹配。

  • 贪婪量词

<!-- @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm } -->

范例			作用

X?			X不出现或者一次
X*			X出现或出现N次都匹配
X+			X至少出现一次才匹配
X{n}			X需要出现n次才匹配
X{n,}			X至少要出现n次才匹配,? X{1,} == X+
X{n, m}			X出现的次数在n到m之间

 

  • 逻辑运算符

<!-- @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm } -->

XY			XY
X|Y			X或Y
(X)			捕获组

  • 边界匹配

<!-- @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm } -->

^			一行的开始
$			一行的结尾
\b			词界
\B			非词界
\G			上一级结尾

 

分享到:
评论

相关推荐

    java正则表达式.zip

    Java正则表达式是Java编程语言中用于处理字符串的强大工具,它基于模式匹配的概念,能够高效地进行文本搜索、替换和解析。在Java中,正则表达式主要通过`java.util.regex`包来实现,提供了Pattern和Matcher两个核心...

    java正则表达式匹配工具

    Java正则表达式匹配工具是IT领域中一种强大的文本处理工具,它利用正则表达式(Regular Expression)的规则来查找、替换或者提取文本中的特定模式。正则表达式是一种特殊的字符序列,能够帮助程序员或者用户高效地...

    java正则表达式验证IP地址

    Java正则表达式验证IP地址 Java正则表达式验证IP地址是指使用Java语言中的正则表达式来验证IP地址是否符合标准。IP地址是指在网络通信中用来标识设备的地址,它是一种逻辑地址,通过它可以找到网络中的设备。在...

    java 正则表达式应用jar包 regex-smart.jar

    Java正则表达式是编程语言Java中的一个强大工具,它用于模式匹配、数据验证和文本检索替换。在Java中,正则表达式是通过java.util.regex包提供的接口和类来实现的。`regex-smart.jar`这个库显然是为了简化开发者在...

    使用Java正则表达式分析处理日志

    本篇将围绕“使用Java正则表达式分析处理日志”这一主题,探讨如何利用Java的正则表达式功能来提取、过滤和操作日志数据。 首先,我们需要理解正则表达式的基本概念。正则表达式(Regular Expression)是一种模式...

    JAVA正则表达式大全

    以下是对这些文档标题所涉及的Java正则表达式知识点的详细解释: 1. **正则表达式之道** 这个主题可能涵盖了正则表达式的基础概念,包括元字符、字符类、量词和分组。元字符如`.`代表任意字符,`^`表示行首,`$`...

    Java正则表达式.ppt

    Java正则表达式是一种强大的文本处理工具,广泛用于验证字符串、查找特定模式和替换文本。在Java中,正则表达式提供了简洁而灵活的方式来处理字符串,使得编程人员能够以更高效的方式实现各种文本操作。 正则表达式...

    Java 正则表达式库

    Java正则表达式库是Java开发中不可或缺的一部分,它为开发者提供了一种强大的文本匹配工具。在Java中,正则表达式(Regular Expression)是一种模式匹配语言,用于处理字符串操作,如查找、替换或提取特定模式的数据...

    Java正则表达式测试工具

    Java正则表达式测试工具是面向开发者和爱好者的一款实用程序,它可以帮助用户验证和调试他们的正则表达式。在Java编程环境中,正则表达式是一个强大的字符串处理工具,广泛用于数据验证、文本搜索和替换等任务。这款...

    使用Java正则表达式实现一个简单的身份证号码验证

    ### 使用Java正则表达式实现一个简单的身份证号码验证 #### 一、背景介绍 身份证号码是中国公民的身份标识,由15位或18位数字组成(早期为15位,后改为18位)。其中,第18位是校验码,可能是数字0~9或者大写字母X。...

    常用java正则表达式

    ### 常用Java正则表达式知识点 #### 一、引言 正则表达式是一种强大的工具,用于处理文本并查找模式。多种编程语言,包括Perl、PHP、Python、JavaScript以及Java等均内置了对正则表达式的支持。本文将详细介绍Java...

    java正则表达式截取demo下载即可运行

    Java正则表达式是Java编程语言中用于处理字符串的强大工具,它允许我们通过模式匹配来查找、替换或分割文本。这个“java正则表达式截取demo”提供了一个可以直接运行的示例,帮助开发者理解如何在Java中使用正则...

    java正则表达式教程html版带目录

    Java正则表达式是Java编程语言中的一个强大工具,它用于模式匹配和字符串处理,尤其在数据验证、文本检索和替换等方面发挥着重要作用。本教程是专为初学者设计的HTML版,旨在帮助读者快速掌握Java正则表达式的概念和...

    java正则表达式使用例子

    Java正则表达式是Java编程语言中用于处理字符串的强大工具,它允许我们通过模式匹配来查找、替换或分割文本。在Android开发中,正则表达式尤其重要,因为它们可以帮助我们验证用户输入、处理文本数据或者进行复杂的...

    Java正则表达式应用总结

    Java正则表达式是编程语言Java中用于处理字符串和文本的强大工具。它允许开发者通过模式匹配来执行复杂的文本分析和操作。在Java中,正则表达式的操作主要涉及两个核心类:`java.util.regex.Matcher`和`java.util....

    Java正则表达式详细讲解

    Java正则表达式是Java编程语言中用于处理字符串的强大工具,它允许程序员通过模式匹配来查找、替换或分割文本。在Java中,正则表达式是通过`java.util.regex`包提供的API来实现的。本讲解将深入探讨Java正则表达式的...

    强大的JAVA正则表达式处理包jakarta-oro

    Java正则表达式是编程语言中的一个重要组成部分,用于文本处理和模式匹配。Jakarta ORO(Oracle Regular Expressions for Java)是Apache软件基金会开发的一个强大的Java正则表达式库,它为开发者提供了更为灵活和...

    Java 正则表达式 图片版

    Java正则表达式 Java 正则表达式 图片版 携带方便,查阅方便!~

Global site tag (gtag.js) - Google Analytics