<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      計算機工具基礎(四)——正則表達式

      本系列博客為MIT《Missing in CS Class(2020)》課程筆記

      正則表達式

      在線正則表達式網站:https://regexr-cn.com/

      注:若無特殊說明,本文章嚴格區分字符(單個字符)與字符串(多個字符)。

      字符串模式匹配

      字符串模式匹配:根據模式串(Pattern)的數量,分為單模匹配多模匹配。設原串\(S\)、模式串\(T\)\(T\)\(S\)中可能多次出現,在\(S\)中找所有\(T\)的相等串的過程即為單模匹配;設原串\(S\)、模式串\(\set{T_1,\cdots ,T_n}\),在\(S\)中找到所有\(\set{T_1,\cdots ,T_n}\)的相等串的過程即為多模匹配

      正則表達式是通配符(?*)的擴展,常用于字符串的模式匹配。通過修改模式串,可使模式串按照一定規則進行匹配。

      匹配符號

      若要匹配這些符號本身,則需將其本身轉義(\)。

      • .:匹配除\n外的任意字符(類似于通配符中的?)。如a.b匹配acb,但不匹配abaccb
      • [ ]:字符集。匹配字符集中的任意字符。若需匹配的字符間呈連續性(如字典序、數字序列等),中間部分范圍可用-省略。如a[b-dB-D]可匹配abacadaBaCaD
      • [^ ]:取反字符集。匹配除該字符集外的任意字符。如a[^a-b]匹配ac等,但不匹配aaab
      • 預定義類:
        • \d:任意數字,等價于[0-9]
        • \D:任意數字,等價于[^0-9]
        • \w:任意字母、數字、下劃線
        • \W:任意字母、數字、下劃線
        • \s:任意空白字符(SpaceTab等)
        • \S:任意空白字符

      邊界匹配

      邊界匹配符可搭配使用。使用邊界匹配符后,默認僅對文本首行進行邊界匹配。

      • ^ :匹配僅在行頭出現的字符串。如^ab匹配abcd abbc aabcabcdab,但不匹配abbcaabc
      • $:匹配僅在行尾出現的字符串。如ab$匹配 aabb abab cbabcbab中的ab,但不匹配aabbabab
      • \b :匹配僅在詞頭出現的字符串。如\bab匹配abcd abaa babaabcdabaaab,但不匹配baba
      • \b:匹配僅在詞尾出現的字符串。如ab\b匹配cdab aaab cabaadabaaab中的ab,但不匹配caba
      • \B :匹配非詞頭出現的字符串(位于單詞的中間或末尾)。如\Bab匹配abaa aaba aaabaabaaaab中的ab,但不匹配abaa
      • \B:匹配非詞尾出現的字符串(位于單詞的開頭或中間)。如ab\B匹配abaa aaba aaababaaaaba中的ab,但不匹配aaab

      匹配修飾符

      • g:全局匹配,匹配模式串出現的所有位置
      • i:忽略模式串大小寫
      • m:對所有行都進行邊界匹配
      • s:使.支持匹配\n

      匹配量詞及其匹配模式

      匹配量詞

      • {<number>}:匹配其前面的字符出現<number>次。若表示重復次數區間,則用,分隔,表示重復次數的閉區間
        若不給定區間端點,由于貪婪匹配機制,不給定的端點默認為\(0\)(左端點)和\(+\infty\)(右端點)。如abt{3}僅匹配abtttabt{3,5}僅匹配abtttabttttabtttttabt{3,}匹配abtttabtttt等。
      • *:匹配其前面的字符出現\(\ge 0\)次,等價于 {0,}。如abt*匹配ababtabtt等。
      • +:匹配其前面的字符出現\(\ge 1\)次,等價于 {1,}。如abt+匹配abtabtt等,但不匹配 ab
      • ?:匹配其前面的字符出現\(0\)\(1\)次,等價于 {0,1}。如abt?匹配ababt,但不匹配abt等。

      量詞的匹配模式

      • 貪婪匹配:盡可能多匹配,直到無法再進行匹配為止。量詞默認為貪婪匹配。如abt*匹配ababtabtt等。
      • 非貪婪匹配:盡可能少匹配,一旦滿足匹配條件則立即停止匹配。在量詞后加?(懶惰符)開啟非貪婪匹配。如abt*?僅匹配abt

      分組 捕獲 引用

      • 分組:將若干字符組織成一個整體的字符串進行匹配
      • ( )非命名捕獲分組,分組并捕獲(記憶化)該匹配。如(ab)+則用于字符串ab出現\(\ge 1\)次,匹配ababab等。
      • (?: )非命名非捕獲分組。匹配后不進行捕獲。
      • (?P<<tag_name>><regex>)命名捕獲分組<tag_name>為分組名,其被<>包圍;<regex>為正則表達式內容。
      • 引用:重復使用先前被分組捕獲的內容
        • 反向引用:在匹配模式時,當遇到反向引用時,不再繼續向后匹配,而是反過來向前引用先前的捕獲分組。
          反向索引引用:適用于非命名捕獲分組,通過形如\<num>的索引引用訪問先前的捕獲。
          反向命名引用:適用于命名捕獲分組,通過形如(?P=<tag_name>)引用訪問先前的捕獲。
        • 替換引用:在替換時引用。
          替換索引引用:適用于非命名捕獲分組,通過形如$<num>的索引引用訪問先前的捕獲。
          替換命名引用:適用與命名捕獲分組,通過形如\g<name>引用訪問先前的捕獲。

      邏輯運算

      • |:或。位于兩個模式串之間。可用于實現多模匹配。如abc|def可匹配abc,也可匹配def

      前瞻 后顧

      posted @ 2025-02-06 00:16  椰蘿Yerosius  閱讀(39)  評論(0)    收藏  舉報  來源
      主站蜘蛛池模板: 国产SM重味一区二区三区| 欧美性猛交xxxx乱大交丰满| 成人国产亚洲精品天堂av| 精品亚洲AⅤ无码午夜在线| 翘臀少妇被扒开屁股日出水爆乳| 亲子乱aⅴ一区二区三区| 国内精品一区二区不卡| 免费看又黄又无码的网站| 不卡在线一区二区三区视频| 久久五十路丰满熟女中出| 色爱综合另类图片av| 一区二区三区成人| av在线播放无码线| 你懂的亚洲一区二区三区| 久久se精品一区精品二区 | 一区二区三区午夜福利院| 久草热8精品视频在线观看| 好大好硬好爽免费视频| 视频一区视频二区视频三区| 精品中文字幕人妻一二| 亚洲区小说区图片区qvod| 亚洲国产成人不卡高清麻豆| 国产超高清麻豆精品传媒麻豆精品 | 成人欧美一区二区三区在线观看 | 国产av一区二区三区无码野战| 办公室强奷漂亮少妇视频| 无码人妻aⅴ一区二区三区蜜桃 | 国产精品人妻| 不卡国产一区二区三区| 国产成人一区二区三区影院动漫| 色悠悠国产精品免费在线| 成人无码视频在线观看免费播放| 沧州市| 国产又色又爽又黄的视频在线| 波多野结衣在线精品视频| 亚洲高清aⅴ日本欧美视频| 黄色三级亚洲男人的天堂| 久久一本人碰碰人碰| 国产麻豆精品一区一区三区| 中文字幕亚洲一区二区三区| 国产成人av电影在线观看第一页|