从学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正则表达式验证IP地址 Java正则表达式验证IP地址是指使用Java语言中的正则表达式来验证IP地址是否符合标准。IP地址是指在网络通信中用来标识设备的地址,它是一种逻辑地址,通过它可以找到网络中的设备。在...
本文写作时,一个包含了用正则表达式进行文本处理的Java规范需求(Specification Request)已经得到认可,你可以期待在JDK的下一版本中看到它。 然而,如果现在就需要使用正则表达式,又该怎么办呢?你可以从Apache...
java,正则表达式,详解,java正则表达式,PDF
Java正则表达式 Java 正则表达式 图片版 携带方便,查阅方便!~
JAVA正则表达式应用:任意输入一串字符串 如何输入exit退出程序;从输入的字符串中判断是否包含手机号码 正则表达式可以使用" +86| 86 1 d{10}" 如果包含请将其在控制台打印出来 否则输出不包含字符串 ...
Java正则表达式Java正则表达式Java正则表达式Java正则表达式
java正则表达式过滤html标签 java正则表达式过滤html标签是指使用java语言中的正则表达式来过滤html标签的操作。HtmlRegexpUtil这个工具类提供了多种过滤html标签的方法,包括过滤所有以"开头以">"结尾的标签、找出...
Java 正则表达式过滤特殊字符的正则表达式 Java 正则表达式是 Java 语言中的一种强大的文本处理工具,能够对字符串进行复杂的匹配、提取和替换操作。本文将详细介绍 Java 正则表达式在过滤特殊字符方面的应用。 ...
正则表达式之道.doc 正则表达式中的特殊字符.doc Java正则表达式详解.doc 正则表达式.ppt JAVA正则表达式--Pattern和Matcher.doc 例子
Java 正则表达式的总结和一些小例子 Java 正则表达式是 Java 编程语言中一个非常重要的组件,它可以用于文本显示、数据表示、查找键和许多其他目的。从 Java 1.4 开始,Java 核心 API 就引入了 java.util.regex ...
Java正则表达式应用总结
Java正则表达式详解
java正则表达式.pdfjava正则表达式.pdfjava正则表达式.pdfjava正则表达式.pdfjava正则表达式.pdf
java正则表达式使用例子,代码是Android的
Java正则表达式详解
正则表达式的使用 java正则表达式的使用示例 java正则表达式
java正则表达式详细全面讲解描述
一篇学习Java正则表达式的文章。
Java正则表达式入门介绍课件;Java正则表达式入门介绍课件
网络上搜集到的java正则表达式编程,整理了下做成了PDF格式