• 正则表达式入门(三)边界


    零宽度断言不匹配字符,而是匹配字符串中的位置。比如^和$,也叫做锚位符。
    行的起始与结束
    要匹配行或字符串的起始要用脱字符

    ^

    要匹配行或字符串的结尾要用美元符

    $
    ^How.*Country.$

    这个匹配以How开头的整行。最后的.是转义字符,匹配点号.。如果想要匹配作为字面值的点号,必须将点号转义或者将其放入字符组中。
    如果不勾选multiline但是勾选dotall的情况下,输入

    ^THE.*?$

    它匹配了整个文本。
    dotall选项表示点号除了匹配其他字符外,还会匹配换行符。如果取消doall,则它什么都不匹配。

    ^THE.*

    在取消dotall的情况下只匹配了第一行。
    单词边界与非单词边界

    THE

    是个零宽度的断言,因为它匹配的东西其实是没有宽度不存在的东西,它匹配了单词THE

    BeB

    它匹配了字母e,e的两边都是非单词字符
    指定单词的边界的另一种方法:

    <

    指定单词开头

    >

    指定单词结尾
    这是旧语法,在最新的正则程序中无法使用。但有些情况很有用。因为它不想匹配任意单词边界,允许分别匹配。
    其他锚位符
    A匹配字符串开头,匹配字符串结尾,但这个写法不是在所有正则程序中可用。
    使用元字符的字面值
    可以使用Q和E之间的字符集匹配字符串字面值。
    为了展示,在RegExr下方文本框中输入以下元字符:

    .^$*+?|(){}[]-

    这15个元字符有特殊含义,用来编写匹配模式。
    如果在RegExr上方文本框中写入这些字符,不会有效果,因为RegExr会以为这是正则表达式而不是字符串字面值。

    Q$E

    它将匹配$,因为Q和E之间的任意字符都会被解释为普通字符。而可以在元字符之前加一个使其匹配字面值。
    小结:

    1.开始和结束分别是^,$

    2.单词和非单词把边界是,B

    3.Q和E之间的任意字符都会被解释为普通字面字符

  • 相关阅读:
    ABAP——动态排序内表
    通过jmeter往kafka写入数据
    清空kafka全部数据
    redis命令
    Eureka的工作原理
    Spring Cloud Ribbon 原理解析
    Redis单实例数据迁移到集群
    Spring Cloud Hystrix
    ElasticSearch
    关于Java导出100万行数据到Excel的优化方案
  • 原文地址:https://www.cnblogs.com/hahazexia/p/5994920.html
Copyright © 2020-2023  润新知