zoukankan      html  css  js  c++  java
  • 正則表達式學習後記

    正則表達式


    一.基本模式匹配:模式,是正則表達式最主要的元素,它們是一組描寫敘述字符串特征的字符
        1.^符號用來匹配以給定字符串開頭的字符串;如^one,已one開頭的字符串,$符號用來匹配以給定字符串結尾的字符串;如one$,已one結尾的
        2.^和$一起使用表示精確匹配;如^one$,精確匹配到one
        3.假設一個模式不包括^和$,那麼它與不論什麼包括該模式的字符串都匹配;如some,There are some apples!


    二.字符簇:用一種更自由的描寫敘述我們要的模式
       1.所有字符放在[]裡面
       2.用-表示一個字符範圍
       3.^放在[]裡面表示除開
       4..如果沒有轉義就表示除了新行以外的所有字符


    三.反復出現:使用{}來確定前面的字符重複的次數
       1.一個數字,{x}表示"前面的字符或字符簇僅僅出現x次".
       2.一個數字加逗號,{x,}表示"前面的字符或字符簇至少出現x次"
       3.一個數字加逗號加數字,{x,y}表示"前面的字符或字符簇至少出現x次,但不超過y次"
       4.特殊符號"?"與{0,1}是相等的,都表示"0個或1個前面的內容"或"前面的內容是可選的";當該字元緊跟在不論什麼一個其它限制符 (*, +, ?, {n}, {n,}, {n,m}) 後面時,匹配模式是非貪婪的。非貪婪模式盡可能少的匹配所搜索的字串。而預設的貪婪模式則盡可能多的匹配所搜索的字串。比如,對於字串 "oooo",'o+?' 將匹配單個 "o",而 'o+' 將匹配全部 'o'。
       5.特殊符號"*"與{0,}是相等的,都表示"0個或多個前面的內容"
       6.特殊符號"+"與{1,}是相等的,都表示"1個或多個前面的內容"
       7.:匹配一個單詞邊界,也就是指單詞和空格間的位置。比如, 'er' 能夠匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。
       8.B:匹配非單詞邊界'erB' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。
       9.cx:匹配由x指明的控制字元;比如, cM 匹配一個 Control-M 或回車符。x 的值必須為 A-Z 或 a-z 之中的一個。否則,將 c 視為一個原義的 'c' 字元。
       10.d :匹配一個數位字元;等價於 [0-9]。
       11.D :匹配一個非數位字元;等價於 [^0-9]。

  • 相关阅读:
    算法------------数组----------------两个数组的交集 II
    算法-----------数组------------只出现一次的数字
    算法------数组---------存在重复元素
    androd hook acitivity 启动流程,替换启动的activity(Android Instrumentation)
    算法--------旋转数组
    Android 项目,没有可运行的Module项
    Java多线程系列目录(共43篇)
    python3:tuple元组
    python 3 :list
    python3 基本数据类型
  • 原文地址:https://www.cnblogs.com/hrrpcy/p/15411938.html
Copyright © 2011-2022 走看看