在java中运用正则表达式
很多编程语言都有自己的正则表达式。感觉大致差不多。但也有自己的特点。记录一下正则表达式在java中的用法
一、语法
1、句点符号
“.”是一个通配符,匹配所有字符,包括空格、Tab字符甚至换行符
eg:a.b 匹配 aab或abb或acb或adb等等
2、方括号符号
“[]”是一个范围匹配方式,只有方括号里面指定的字符才参与匹配,在方括号之内你只能匹配单个字符:
eg:[abcd]x 可以匹配ax或bx或cx或dx,而不能匹配abx等
3、圆括号符号
“()”可以指定一组表达式
eg:([abc]*)([01234]*)
4、或符号
“|”基本就是“或”运算。因为方括号只允许匹配单个字符,这里必须使用圆括号“()”。
eg:x(a|b|c)y 或以匹配 xay或xby或xcy
5、否符号
“^”表示不想要匹配的字符
eg:[^0-9]匹配非0到9这些数字的其它字符
6、匹配次数的符号
引用
* 0次或多次
+ 1次或多次
? 0次或1次
{n} 恰好n次
{n,m} 从n次到m次
7、连字符号
“-”有着特殊的意义,它表示一个范围,比如从0到9。
eg:[a-z0-9] 匹配 a到z或0到9的字符
假设我们要在文本文件中搜索美国的社会安全号码。这个号码的格式是999-99-9999。用来匹配它的正则表达式如图一所示。在正则表达式中,连字符(“-”)有着特殊的意义,它表示一个范围,比如从0到9。因此,匹配社会安全号码中的连字符号时,它的前面要加上一个转义字符“\”。
图一:匹配所有123-12-1234形式的社会安全号码
假设进行搜索的时候,你希望连字符号可以出现,也可以不出现——即,999-99-9999和999999999都属于正确的格式。这时,你可以在连字符号后面加上“?”数量限定符号,如图二所示:
图二:匹配所有123-12-1234和123121234形式的社会安全号码
下面我们再来看另外一个例子。美国汽车牌照的一种格式是四个数字加上二个字母。它的正则表达式前面是数字部分“[0-9]{4}”,再加上字母部分“[A-Z]{2}”。图三显示了完整的正则表达式。
图三:匹配典型的美国汽车牌照号码,如8836KV
8、其它符号
\d 相当 [0-9]
\D 相当 [^0-9]
\w 相当 [A-Z0-9]
\W 相当 [^A-Z0-9]
\s 相当 [\t\n\r\f]
\S 相当 [^\t\n\r\f]
二、一些实例
首先我们来看看IP地址。IP地址有4个字节构成,每一个字节的值在0到255之间,各个字节通过一个句点分隔。因此,IP地址中的每一个字节有至少一个、最多三个数字。图八显示了为IP地址编写的正则表达式:
图八:匹配IP地址
三、在java中处理表达式
Java代码
String patternString = "\\s*\\p{Punct}\\s*";
try{
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(input);
if (matcher.matches()){
//...
}
}catch (PatternSyntaxException e){
//...
}
例子及图片有些是从网上收集的,在些向原创者表示感谢!
链接:http://ll-feng.iteye.com/blog/290874
分享到:
相关推荐
在学习完该教程后,应该对正则表达式有了初步的了解,并能熟练地运用 java.util.regex 包中的关于正则表达式的类库,为今后学习更高级的正则表达式技术奠定良好的基础。 教程中所有的源代码都在 src 目录下,可以...
《精通正则表达式(第3版)》,以明晰轻松的笔调向程序员深入浅出地讲解复杂的知识,并给出了现实世界中复杂问题的解决办法,读者能够立刻运用书中丰富的知识,巧妙而高效地解决各种问题。 此书为英文版,因为中文...
随着互联网的迅速发展,几乎...《精通正则表达式(第3版)》,以明晰轻松的笔调向程序员深入浅出地讲解复杂的知识,并给出了现实世界中复杂问题的解决办法,读者能够立刻运用书中丰富的知识,巧妙而高效地解决各种问题。
常用正则表达式运用 正则表达式的匹配 统计代码 行数 用正则表达式读取 html文件中的 email信息
《精通正则表达式(第3版)》...《精通正则表达式(第3版)》,以明晰轻松的笔调向程序员深入浅出地讲解复杂的知识,并给出了现实世界中复杂问题的解决办法,读者能够立刻运用书中丰富的知识,巧妙而高效地解决各种问题。
《精通正则表达式(第3版)》,以明晰轻松的笔调向程序员深入浅出地讲解复杂的知识,并给出了现实世界中复杂问题的解决办法,读者能够立刻运用书中丰富的知识,巧妙而高效地解决各种问题。 “如果你的工作需要用到...
正则表达式简介 工具软件RegexBuddy的运用 正则表达式规则 正则表达式的匹配模式 开发正则表达式的流程 开发软件中使用正则表达式将大大提高...java程序中使用正则表达式 javascript中使用正则表达式 以及一些课后作业
介绍了正则表达式的强大功能。只要正确运用,正则表达式能够在字符串提取和文本修改中起到很大的作用。另外,还介绍了如何在Java程序中通过Jakarta-ORO库利用正则表达式。
只要正确运用,正则表达式能够在字符串提取和文本修改中起到很大的作用。另外,我还介绍了如何在Java程序中通过Jakarta-ORO库利用正则表达式。至于最终采用老式的字符串处理方式(使用StringTokenizer,charAt,和...
运用java语言 写出的正则表达式 功能非常强大
Java正则表达式应用-Jakarta-ORO篇,这里详细的统计了正则表达式的在java中的运用,
正则表达式用的地方很多,相信你懂的,下载后好好运用吧!好好学习天天向上。
正则表达式,常用的几种规范,能够更加灵活运用数字之间的判断条件,常用于数据输入的时候,进行的判断。
目录正则表达式1. 正则标记1.1 字符1.2 字符类1.3 预定义字符类1.4 边界匹配器(java一般不用到)1.5 Greedy 数量词1.6 Logical 运算符2. String类支持3. Java.util.regex包支持3.1 Pattern类(常用方法)3.2 Matcher类...
java语言中的正则表达式的具体内容和升级的内容,便于快速学习和熟练运用。
该资料介绍了正则表达式的用法,通过学习能够更好的掌握如何运用正则表达式
主要为大家详细介绍了java正则表达式的简单运用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
例子:在var str = “asdfghj” 中加入一个”字符在正常情况下是无法成立的,但运用正则表达式中的转义字符则”\”可以让他成立; 在”前加入转义符“\”可以使得变量成立,在图中转义字符+双引号成功变为一个文本...
别小看它的作用, 在工作学习中灵活运用正则表达式处理字符串能够大幅度提高效率, 编程的快乐来得就是这么简单. •一下子给出一堆匹配的规则可能会让人恐惧, 下面将由浅入深讲解正则表达式的使用. 从简单例子认识...