`
朱润泽
  • 浏览: 46425 次
  • 性别: Icon_minigender_1
  • 来自: 江西
社区版块
存档分类
最新评论

java正则表达式的初步

    博客分类:
  • java
阅读更多

Java正则表达式

1、句点符号(.

句点符号可以匹配所有的任意的字符,甚至是换行符。

正则表达式:t.n

匹配:tan, Ten, tin等等

 

但需要注意的是:句点符号只能匹配一个任意的字符。

如:t.nteen的匹配为false

 

2、方括号符号([]

为了解决句点符号匹配范围过于广泛的这一问题,可以使用方括号[],里面指定的有意义的字符。只有方括号里面指定的字符才能匹配。

 

正则表达式:t[aeio]n

匹配: tan, Ten , tin, ton

 

同样,方括号中只能匹配一个字符。如上正则表达式   t[aeio]n  taen的匹配为false

 

3、“或”符号

“或”符号的运算和方括号的使用相似,只是“或”可以对表达式中的字符分组,换句话说就是“或”可以匹配多个字符,而方括号只能匹配单个字符。

 

正则表达式:t(a|e|i|o|oo)n

匹配: tan, ten, tin ,ton , toon

 

4、表示匹配的次数的符号

下面的符号分别显示匹配的次数,这些符号用来确定紧靠该符号左边的符号的出现的次数

 

符号                     次数

 *                       

符号 次数
* 0次或者多次
+ 1次或者多次
0次或者1次
{n} 恰好n次
{n,m} 从n到m次

 

 

 

<!--EndFragment--><!--EndFragment--><!--EndFragment--><!--EndFragment-->

 

5、“否”符号  “ 

“ ” 边界匹配器,行的开头。如果用在方括号内,表示不像匹配的字符。

   

[^X][a-z]

第一个不能为X,后面跟一个a-z任意的一个字符

 

6、圆括号和空白符号

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

 [a-z]+\s+[0-9]{1,2} , \s*[0-9]{4}

 

如何提取出月份部分?只需要在月份周围加上一个圆括号创建一个组,然后用ORO API 提取出它的值。修改后的正则表达式如下:

 

 ([a-z]+)\s+[0-9]{1,2} , \s*[0-9]{4}

 

 

7、其他符号

下表是常见正则表示式创建的快捷符合。

符号 等价的正则表达式
\d [0-9]
\D [^0-9]
\w [A-Z0-9]
\W [^A-Z0-9]
\s [\t\n\r\f]

 

如下面的例子:

可以将所有出现“[0-9]”的地方我们都可以用“\d

 

 

1、[^abc] 任何字符,除了abc   比如:匹配字符true  。该表达式只能匹配单个字符,对 zz的匹配为false

2、[] 方括号里面的,匹配的是一个字符,

3、[a-d[m-p]][a-zA-Z]相似  并集

4、[a-z&&[zhu]]  交集  同时属于a-zzhu其中的一个字符

[abc] a、b、c
[^abc] 除a、b、c外的
[a-zA-Z] a到z,A-Z中的任意一个字符
[a-d[m-p]] a到d,m到p中的任意一个字符
[a-z&&[def]] a到z 和def相交的一个字符
   
   

 

 

 

 

横线 -  表示范围的定义 。0-9 表示范围09之间的任何数字

 

 

 

^   行的开头

$   行的结尾

 

 

 

用法:1、 ^  行的开头。如、^A[0-9] --------表示以A开头、后面接一个数字的串

      2、 $  行的结尾,和 用法相似。 如一个以数字1开头,9结尾的手机号码:^1[0-9]{9}9$

 

 

 

public static boolean test02(){

Pattern p = Pattern.compile("([a-z]+)([0-9]+)");

Matcher m = p.matcher("zhuyingming2009");

//m.find()匹配器与模式进行匹配,匹配成功返回true,否则返回false

if(m.find() == true){

//匹配成功后,可以用匹配器的group()方法获得组里的内容,

/**

 *  不带参数的group()是获得整个内容

 *  带参数的group(int start) start表示第几个组的内容,

 *  start为0时 和不带参数的group()获得的内容一样。

 * */

String temp = m.group(2);

System.out.println("group ---> " + temp);

}

boolean result = m.matches();

return result;

}

<!--EndFragment-->

分享到:
评论

相关推荐

    JAVA 正则表达式 教程

    在学习完该教程后,应该对正则表达式有了初步的了解,并能熟练地运用 java.util.regex 包中的关于正则表达式的类库,为今后学习更高级的正则表达式技术奠定良好的基础。 教程中所有的源代码都在 src 目录下,可以...

    java正则表达式学习

    java正则表达式,初步认识正则表达式的应用。文档教程

    正则表达式30分钟入门教程(详细)

    正则表达式30分钟入门教程(详细),介绍了正则的基本含义和入门初步知识

    java解析给定url

    * 正则表达式匹配关键数据 * @param line * @return */ private Set&lt;String&gt; parse(String line) { Set resSet = new LinkedHashSet(); Pattern pattern = Pattern.compile(reg); Matcher matcher = pattern...

    Java中正则表达式使用方法详解

    Java中正则表达式使用方法详解,包括基础语法,初步认识,范围 各种条件限制验证等等

    Java面向对象程序设计笔记

    Java面向对象程序设计笔记: 目录----非原创,上课的时候老师给的资料哦 第一章 Java 前凑 3 ...6. 正则表达式 27 第七章 异常处理 32 第八章Oracle数据库基础 32 第九章JDBC编 32 第十章GUI编程 32

    JavaNotes:自学,存放学习笔记

    正则表达式 重新组织函数 JavaWeb HTML,CSS JavaScript jQuery查询 Servelet JSON格式 阿贾克斯 RESTful的 单点登录 VUE CDN 搜索引擎优化 XSS CSRF 会议 曲奇饼 过滤器 监听器 IO 蔚来 净额 非双向IO和...

    javascript初级代码学习.zip

    003-DOM编程-关于正则表达式 004-去除字符串的前后空白trim 005-表单验证 006-复选框的全选和取消全选 007-获取下拉列表选中项的value 008-显示网页时钟 009-内置支持类Array 004-关于JS中的变量 005-JS函数初步 007...

    AIC的Java课程1-6章

     理解正则表达式,学会使用String.matches方法,Pattern和Matcher类进行模式匹配。  学会使用String.split方法,Scanner类,StringTokenizer类分解字符串。  [*]利用Formatter类的printf或format...

    sek:一个类似 Nutch 的, 基于 Hadoop 的并行式爬虫框架

    基于 正则表达式 的 URL 过滤.URL 规范化.广度优先的抓取策略.插件机制. 程序只提供一个必要的骨架, 可以通过插件的机制来定制软件的运行.Solr 集成, 提供全文检索.(待定)支持图片的抓取.(待定)Note这里对插件机制做...

    java微信公众号MVC开发框架

    处理文本适配模式,@TextMsg还支持正则表达式适配模式,这部分内容在使用参考部分说明。 本例中微信方法并没有设置参数,实际可以灵活设置参数,例如我们可以在方法中设置HttpServletRequest request,...

    精通Qt4编程(第二版)源代码

    \13.5.1 基本的正则表达式 342 \13.5.2 文字捕获 344 \13.6 小结 345 \高 级 篇 \第14章 XML 348 \14.1 DOM 348 \14.1.1 DOM入门 348 \14.1.2 使用DOM 348 \14.1.3 使用DOM写XML文件 352 \14.2 SAX 354 \...

    精通qt4编程(源代码)

    \13.5.1 基本的正则表达式 342 \13.5.2 文字捕获 344 \13.6 小结 345 \高 级 篇 \第14章 XML 348 \14.1 DOM 348 \14.1.1 DOM入门 348 \14.1.2 使用DOM 348 \14.1.3 使用DOM写XML文件 352 \14.2 SAX 354 \14.3 基于流...

    Scala程序设计(第2版)

    4.8 正则表达式的匹配 103 4.9 再谈case语句的变量绑定 104 4.10 再谈类型匹配 104 4.11 封闭继承层级与全覆盖匹配 105 4.12 模式匹配的其他用法 107 4.13 总结关于模式匹配的评价 111 4.14 本章...

    asp.net知识库

    ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则表达式 delegate vs. event 我是谁?[C#] 表达式计算引擎 正式发布表达式计算引擎WfcExp V0.9(附源码) 运算表达式类的原理及其实现 #实现的18位身份证...

    Python编程入门经典

    11.3 使用正则表达式和re 模块 185 11.4 本章小结 189 11.5 习题 189 第Ⅲ部分 开始使用Python 第12章 测试 193 12.1 断言 193 12.2 测试用例和测试套件 195 12.3 测试装置 198 12.4 用极限编程整合 201 12.4.1 用...

    freemarker总结

    JAVA模版引擎Freemarker常用标签(一) 1. if指令 这是一个典型的分支控制指令,该指令的作用完全类似于Java语言中的if,if指令的语法格式如下: &lt;#if condition&gt;... &lt;#elseif condition&gt;... &lt;#elseif condition&gt;......

Global site tag (gtag.js) - Google Analytics