`

深入入门正则表达式(java) - 引言

 
阅读更多

本系列将带新手入门,之所以叫深入入门,就是想和网上的各种教程区分

正则总得来说虽然是简单,但是也不是30分钟就能搞定的事情。

 

内容是自己曾经积累的知识总结和书本的提炼:比如《精通正则表达式》 - 中文版第三版

整理过程中难免有错误,可能是笔误也可能是……

顺序是

1.基础知识

2.基本实例

3.java中的正则使用

4.匹配原理

5.技巧与优化

6.android中的正则

 

使用的测试工具是RegexBuddy

工具比较强大,可以模拟多种语言的正则,而且还支持正则中的debug

 

 

正则表达式的作用主要体现在字符串的查找与替换上。

比如我现在做的android开发,调试的时候总是有大量log,没等你看清内容是什么呢新log就把旧log挤掉了,log中夹杂了大量你不关心的内容,于是我经常在adb logcat后面加上grep保证只留下我希望看到的内容。

 

我相信大家在开发过程中肯定遇到过下面的情况:你想查找的内容并不是很确定

举个简单例子:比如你想找hate和like,文本中这样的字符串不多,一次都列出来的话你也很容易能应付过来,所以你并不希望自己要查询两次,那么可以用正则,如果是大写,你也希望匹配,那么也可以用正则……

这样的例子很多,下面我们就从最基础的内容开始,希望大家有点耐心

 

ps: 我非常反对从网上复制“常用”正则之类的内容,首先写这个的人是为了当时自己的需求而写,比如人家匹配电话是4位区号-7位电话,而之后电话号码升到8位 了,于是你的正则就不灵了。这还是好的情况{7}改成{8}就行了,即使程序出了问题不会正则也能猜出来修改哪里。刚才随便在网上搜了一下 “常用正则”,于是发现一个人如下写到

^[0-9]*[1-9][0-9]*$    //匹配正整数

 

这有很多问题

首先它匹配到的确实是正整数,但是可能会匹配到01这样的类型,我想很多人不希望这样吧

前面的[0-9]*完全多余

 

还有一个例子

^((-\d+)|(0+))$    //匹配非正整数(负整数 + 0)

 

我不知道为什么这个人要加这么多括号,这样只会拖慢程序的速度,起码最里面的两个括号我想不到什么理由加上

 

不举例了,相信大家在复制的过程中都遭遇过尴尬

下面开始正题

在有java示例的时候几乎都要引入如下几个类,之后不再赘述。

import java.util.regex.Matcher;  
import java.util.regex.Pattern;  
import java.util.regex.PatternSyntaxException;

 未完待续

 

分享到:
评论

相关推荐

    JAVA正则表达式入门

    ### JAVA正则表达式入门详解 #### 一、引言 在软件开发过程中,经常会遇到对字符串进行匹配、查找、替换或判断的需求。对于复杂的字符串处理任务,传统的编程方法不仅耗时,而且容易出错。这时,正则表达式作为一...

    Regular Expressions Cookbook 正则手册 2009

    本书为读者提供了全面深入的正则表达式知识体系,不仅适合初学者入门,也适用于有一定基础的技术人员进行深入学习和日常参考。 #### 二、正则表达式的定义与应用场景 正则表达式(Regular Expression)是一种用于...

    Python 核心编程 第二版

    第2部分则提供了各种高级主题来展示可以使用Python做些什么,包括正则表达式、网络编程、网络客户端编程、多线程编程、图形用户界面编程、 Web编程、数据库编程、扩展Python 和一些其他材料。  本书适合Python初学...

    Jess71p2.doc

    - Jess支持正则表达式语法,可用于模式匹配中的复杂文本匹配。 ##### 6.7 显著性和冲突解决 - 显著性是一个规则的优先级指标,当多个规则适用时,Jess会根据显著性来决定执行哪个规则。 ##### 6.8 条件元素:`and...

    现代编译原理 java 虎书

    - **内容概览**:详细讲解了词法分析的基本原理和技术,包括词法分析器的设计方法、正则表达式的应用等。 - **核心概念**:词法分析器的作用是将源代码分割成一系列的标记(token),每个标记代表了源代码中的一种...

    入门GWT 适合初学者

    GWT编译器支持广泛的Java语言特性,包括基本类型、异常处理、常用包(如java.lang和java.util)中的类和接口,以及正则表达式和序列化等功能。 - **跨平台支持**:GWT支持多种浏览器和操作系统,包括但不限于...

    perltut-perl经典教程

    ### Perl经典教程:深入浅出,言简意赅 ...通过深入学习Perl的经典教程,读者不仅能掌握Perl的基本语法和数据结构,还能探索其高级功能,如正则表达式、模块化编程和面向对象编程,从而成为一名熟练的Perl程序员。

    Python核心编程第二版

     第2章 快速入门   2.1 程序输出,print语句及“Hello World!”   2.2 程序输入和raw_input()内建函数   2.3 注释   2.4 操作符   2.5 变量和赋值   2.6 数字   2.7 字符串   2.8 列表...

    oracle教程

    8. **高级查询**:涉及窗口函数、正则表达式等高级SQL功能,提升数据处理的灵活性和效率。 9. **数据字典**:介绍Oracle系统内部的数据字典,帮助理解数据库的内部结构和元数据。 10. **Oracle数据类型**:详细...

Global site tag (gtag.js) - Google Analytics