zoukankan      html  css  js  c++  java
  • Java正则表达式初探(一)

    好多同学们总是听别人说起正则表达式这个东西,也有很多用接触到实际使用过。但是相信有很大一部分人是在用的时候采取网站上搜索,拿一个一知半解的别人写的例子过来,简单测试下功能可用,就OK了。正则表达式那晦涩难懂的语法让很多人望而却步。但是读了本文,我相信很多人对于正则表达式就算是基本入门了。最快捷的精通的办法,还是多练多写。

    一、什么是正则表达式?

    正则表达式,又称正则表达式、正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。

    二、java中正则表达式的实现

    java中正则表达式相关的类都在java.util.regex包下面,我们先来看看都有哪些吧。

    clip_image002

    主要就是两个类,java的正则表达式相关的功能都已经在这两个类里面实现了。下面简单介绍下正在表达式中的语法吧。

    1.字符

    字符在正则表达式中,代表的就是一个字符本身。

    Pattern p = Pattern.compile("abc");

    上面这个正则表达式,代表就是匹配“abc”这个字符串,字符是正在表达式中对基本的元素,也非常好理解。

    2.字符类

    字符类在正则表达式中,代表的是一类字符。使用半角中括号代表字符类。中括号中可以出现一些带有含义的特殊字符。简单具体如下:

    clip_image004

    3.预定义字符类

    正在表达式中,将人们最常用的字符类已经提前定义好,并且使用一个特殊的表达形式代替,让人们使用起来更加方便快捷。

    clip_image006

    4.边界匹配

    边界匹配符,用于定义正则表达式匹配的边界约束。

    clip_image008

    5.量词

    量词用于定义正则表达式中,字符出现的次数。量词的匹配模式分为三种:贪婪、勉强、独占

    clip_image010

    6.捕获组和非捕获组

    捕获组的定义目的是为了将匹配到的内容当中定义几个部分,人们能够分别获取每一个部分的内容。捕获组的定义,与匹配无关,对于匹配结果也没有影响只是为了单纯的进行文本分组的。

    非捕获组和捕获组恰恰相反,他是为了影响是否匹配,但是在匹配结果中又不出现的一种分组形式。

    clip_image012

    三、写在最后

    在学习一个晦涩难度的技术的时候,最重要得还是要能够静的下心来,以及掌握一个正确的学习方法吧。

    上面的内容在Java API中Pattern这个类的说明中有详细的解释。

    没记住的同学,随时可以使用API查询。第二讲中将针对上述的概念,以具体的例子来说明用法。

    作者:yescoolfan
    出处:http://www.cnblogs.com/yescoolfan
    水平有限,欢迎指正,转载时请附上原文链接

  • 相关阅读:
    前后端反爬虫的一些奇怪姿势【转载】
    Scrapy 中常用的中间件和管道组件
    Jquery各个版本的区别
    userAgent
    操作系统
    手机类别
    移动端设备UA检测
    iPhone6的CSS3媒体查询
    所有设备的CSS像素
    解读所有设备的css像素的网站
  • 原文地址:https://www.cnblogs.com/yescoolfan/p/3474389.html
Copyright © 2011-2022 走看看