zoukankan      html  css  js  c++  java
  • 正则表达式入门(三)边界

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

    ^

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

    $
    ^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之间的任意字符都会被解释为普通字面字符

  • 相关阅读:
    SQL 学习笔记(一)联表查询
    .NET (OleDb) Access 各个版本的连接字符口串
    加油站
    程序员的编程套路
    落单的数
    读《怎样解题》
    使用org-mode写cnblogs博客
    Emacs 25.1 error solved: url-http-create-request: Multibyte text in HTTP request
    二进制表示小数
    快速幂
  • 原文地址:https://www.cnblogs.com/hahazexia/p/5994920.html
Copyright © 2011-2022 走看看