美文网首页Java学习笔记
简单了解正则表达式o(* ̄▽ ̄*)ブ

简单了解正则表达式o(* ̄▽ ̄*)ブ

作者: 卡路fly | 来源:发表于2017-05-02 17:09 被阅读40次
    字符 含义
    \n 换行符
    \t 制表符
    |\本身
    ^,$,\.等 本身
    \d 0-9中任何一个数字
    \w A-Z,a-z,0-9,_中任何一个
    \s 空格、制表符、换行符等空白字符
    . 匹配任何一个字符,如果要匹配包括“\n”在内所有字符,一般用[\s\S]

    自定义字符集合

    字符 含义
    [a1#] a或1或#
    [^a1] 除了a,1
    [a-d] a-d中任意一个
    [^A-B0-2] 除了A-B,0-2的任意字符

    量词

    字符 含义
    {n} 表达式重复n次
    {m,n} 表达式至少重复m次,最多重复n次
    {m,} 表达式至少重复m次
    ? 匹配表达式0次或者一次,相当于{0,1}
    + 表达式至少出现1次,相当于{1,}
    * 表达式不出现或出现任意次,相当于{0,}
    • 贪婪模式(匹配字符越多越好,默认)
    • 非贪婪模式(匹配字符越少越好,修饰匹配次数的特殊符号后加“?”)

    字符边界

    字符 含义
    ^ 字符串开始的地方匹配
    $ 字符串结束的地方匹配
    \b 匹配一个单词边界
    • 匹配的不是字符是位置
    • -b:前面的字符和后面的字符不全是\w

    匹配模式

    模式 描述
    IGNORECASE 忽略大小写模式 - 匹配时忽略大小写
    - 默认情况下,正则表达式区分大小写
    SINGLELINE 单行模式 - 整个文本看作一个字符串,只有一个开头一个结尾
    - 使“.”可以匹配包含换行符在内的任意字符
    MULTILINE 多行模式 - 每行都是一个字符串
    - 如果仅匹配字符串开始和结束位置可以使用\A和\Z

    选择符和分组

    表达式 分组
    "中分线"分支结构 左右两边表达式之间或关系,匹配左边或右边
    ()捕获组 1. 在修饰匹配次数的时候,括号中的表达式可以作为整体被修饰
    2.取匹配结构的时候,括号中的表达式匹配到的内容可以被单独得到
    3. 每一对括号会分配一个编号,使用()捕获根据左括号的顺序从1开始自动编号。捕获元素编号为零的第一个捕获是由正则表达式模式匹配的文本
    (?:Expression)非捕获组 一些表达式中,不得不使用(),但有不需要保存()中子表达式匹配的内容,可以使用非捕获组来抵消()带来的副作用

    反向引用(\nnn)

    • 每一对()会分配一个编号,使用()的捕获根据左括号的顺序从1开始自动编号
    • 通过反向引用,可以对分组已捕获的字符串进行引用

    预搜索(零宽断言)

    • 只进行子表达式的匹配,匹配内容不计入最终的匹配结果,零宽度
    • 这个位置应该符合某个条件。判断当前位置的前后字符,是否符合指定的条件,但不匹配前后的字符。是对位置的匹配
    • 匹配过程中,如果子表达式匹配到的是字符内容,而非位置,并被保存到最终的匹配结构中,那就认为这个子表达式是占有字符的;如果自表达式匹配的仅仅是位置,或者匹配的内容并不保存到最终的匹配结果中,那么就认为这个子表达式是零宽度的。占有字符还是零宽度,是针对匹配的内容是否保存到最终的匹配结构中而言的。
    表达式 描述
    (?=exp) 断言自身出现的位置的后面能匹配表达式exp
    (?<=exp) 断言自身出现的位置的前面能匹配表达式exp
    (?!exp) 断言此位置的后面不能匹配表达式exp
    (?<exp) 断言此位置的前面不能匹配表达式exp

    java中的使用

    Pattern p = Pattern.complie(r,int);
    Matcher m = p.matcher(str);
    

    正则表达式了解一下基本的就好哇咔咔,网上已经有炒鸡多已经写好了的啊哈哈哈。所以,了解了解一下。(●'◡'●)

    常用正则表达式列表

    相关文章

      网友评论

        本文标题:简单了解正则表达式o(* ̄▽ ̄*)ブ

        本文链接:https://www.haomeiwen.com/subject/twgctxtx.html