• 正则表达式(理论篇)


    维基百科

    正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。

    许多程序设计语言都支持利用正则表达式进行字符串操作。

    元字符

    .         匹配除换行符以外的任意字符

    w         匹配字母或数字或下划线或汉字

    s         匹配任意的空白符

    d         匹配数字

             匹配单词的开始或结束

    ^         匹配字符串的开始

    $         匹配字符串的结束

    转移字符()

    如果你想查找元字符本身的话,比如你查找.,或者*,就出现了问题:你没办法指定它们,因为它们会被解释成别的意思。这时你就得使用来取消这些字符的特殊意义。因此,你应该使用.和*。当然,要查找本身,你也得用\.

    例如:deerchao.net匹配deerchao.net,C:\Windows匹配C:Windows。

    限定符

    *         重复零次或更多次

    +         重复一次或更多次

    ?         重复零次或一次

    {n}         重复n次

    {n,}          重复n次或更多次

    {n,m} 重复n到m次

    从给定范围匹配([ ])

    例如:[abc]就匹配任何一个英文字母

    分支条件(|)

    0d{2}-d{8}|0d{3}-d{7}红色和绿色只匹配一种,如果直接匹配到红色,则会将绿色短路,所以此处要注意顺序

    分组

    可以用小括号来指定子表达式(也叫做分组)

    例如:(d{1,3}.){3}d{1,3}是一个简单的IP地址匹配表达式。要理解这个表达式,请按下列顺序分析它:d{1,3}匹配1到3位的数字,(d{1,3}.){3}匹配三位数字加上一个英文句号(这个整体也就是这个分组)重复3次,最后再加上一个一到三位的数字(d{1,3})。

    反义

    有时需要查找不属于某个能简单定义的字符类的字符。比如想查找除了数字以外,其它任意字符都行的情况,这时需要用到反义。

    W         匹配任意不是字母,数字,下划线,汉字的字符

    S         匹配任意不是空白符的字符

    D         匹配任意非数字的字符

    B         匹配不是单词开头或结束的位置

    [^x]         匹配除了x以外的任意字符

    [^aeiou] 匹配除了aeiou这几个字母以外的任意字符

  • 相关阅读:
    Activity 生命周期
    Java 单列模式(Singleton)
    Android SQLiteOpenHelper(二)
    Android SQLiteOpenHelper(一)
    Android Listview & Adapter
    Android 微信UI 、点击操作
    Android RadioGroup 及资源文件 & selector
    Java中&与&&的区别
    android几种定时器机制及区别(转载整理)
    Java 之 Date 和 Calendar 实例
  • 原文地址:https://www.cnblogs.com/luoxiaolei/p/6714921.html
Copyright © 2020-2023  润新知