Java正则表达式详解

来源:互联网 发布:vip视频解析端口原理 编辑:程序博客网 时间:2024/05/17 04:50

这是几个学习正则表达式的教程:

  • 正则表达式30分钟入门教程

  • 常用正则表达式

  • Java正则表达式入门学习

正则表达式简介:

1.正则表达式最早在Linux下发展起来的,JDK1.4开始正式引入java中
2.JDK1.4后引入了一个java.util.regex开发包,其中包含Pattren类Matcher类
3.Pattern类:定义并且编译正则的匹配模板 Matcher类:匹配应用 在JDK1.4之后的String类更为常用
4.对于String类的验证使用正则表达式更加方便

正则表达式基础知识:

1.

2.句点符号(句点符号匹配所有字符,包括空格、Tab字符甚至换行符):

3.方括号符号(在方括号之内你只能匹配单个字符):

4.“或”符号不能使用方扩号,方括号只许匹配单个字符,这里必须使用圆括号“()”:

5.表示匹配次数的符号:

表一显示了表示匹配次数的符号,这些符号用来确定紧靠该符号左边的符号出现的次数:

如:999-99-9999,用来匹配它的正则表达式如图一所示。在正则表达式中,连字符(“-”)有着特殊的意义,它表示一个范围,比如从0到9。因此,匹配社会安全号码中的连字符号时,它的前面要加上一个转义字符“\”:

假设进行搜索的时候,你希望连字符号可以出现,也可以不出现——即,999-99-9999和999999999都属于正确的格式。这时,你可以在连字符号后面加上“?”数量限定符号,如图二所示:

下面我们再来看另外一个例子。美国汽车牌照的一种格式是四个数字加上二个字母。它的正则表达式前面是数字部分“[0-9]{4}”,再加上字母部分“[A-Z]{2}”。图三显示了完整的正则表达式:

6.“否”符号:

“^”符号称为“否”符号。如果用在方括号内,“^”表示不想要匹配的字符。例如,图四的正则表达式匹配所有单词,但以“X”字母开头的单词除外:

7.圆括号和空白符号:

假设要从格式为“June 26, 1951”的生日日期中提取出月份部分,用来匹配该日期的正则表达式可以如图五所示:

新出现的“\s”符号是空白符号,匹配所有的空白字符,包括Tab字符。如果字符串正确匹配,接下来如何提取出月份部分呢?只需在月份周围加上一个圆括号创建一个组,然后用ORO API提取出它的值修改后的正则表达式如图六所示:

8.其它符号(正则表达式的快捷符号):

为简便起见,你可以使用一些为常见正则表达式创建的快捷符号。如表二所示:

例如,在前面社会安全号码的例子中,有出现“[0-9]”的地方我们都可以使用“\d”。修改后的正则表达式如图七所示:

9.转义字符的使用:

正则表达式中的特殊字符,就是一些有特殊含义的字符,简单的说就是表示任何字符串的意思,如:

\:例如:‘n' 匹配字符 ‘n','\n' 匹配换行符,序列 ‘\\' 匹配 “\”,而 ‘\(' 则匹配 “(”等等........
0 0