日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

正则不能输入特殊字符_正则表达式语法学习和在线练习

發布時間:2024/7/19 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 正则不能输入特殊字符_正则表达式语法学习和在线练习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

標題: 正則表達式語法學習和在線練習
作者: 夢幻之心星 sky-seeker@qq.com
標簽: [#正則表達式,#語法,#學習,#練習]
目錄: [語法]
日期: 2021-01-26

背景說明

  • 正則表達式使搜索和替換操作更加靈活高效。
  • 許多程序設計語言都支持使用正則表達式進行字符串操作。
  • 正則表達式是由普通字符和特殊字符組成的文字模式。
  • 正則表達式的組件可以是單個的字符、字符集合、字符范圍、字符間的選擇或者所有這些組件的任意組合。
  • 正則表達式描述了一種字符串匹配的模式,可以用來檢查一個串是否含有某種子串、將匹配的子串替換或者從某個串中取出符合某個條件的子串等。

語法說明

普通字符

  • 普通字符包括沒有顯式指定為元字符的所有可打印和不可打印字符。這包括所有大寫和小寫字母、所有數字、所有標點符號和一些其他符號。

    字符描述
    [ABC]匹配字符集合中的任意一個字符
    [^ABC]匹配字符集合中未包含的任意字符
    [A-Z]匹配指定范圍內的任意字符
    [^A-Z]匹配任何不在指定范圍內的任意字符

非打印字符

  • 非打印字符也可以是正則表達式的組成部分。

    字符描述
    \cx匹配由x指明的控制字符。x的值必須為 A-Z 或 a-z 之一
    \f匹配一個換頁符。等價于 \x0c 和 \cL
    \n匹配一個換行符。等價于 \x0a 和 \cJ
    \r匹配一個回車符。等價于 \x0d 和 \cM
    \t匹配一個制表符。等價于 \x09 和 \cI
    \v匹配一個垂直制表符。等價于 \x0b 和 \cK
    \s匹配任何空白字符,包括空格、制表符、換頁符等
    \S匹配任何非空白字符
    \w匹配字母、數字、下劃線、漢字
    \W匹配非字母、數字、下劃線、漢字
    \d匹配一個數字字符。等價于 [0-9]
    \D匹配一個非數字字符。等價于 [0-9]

特殊字符

  • 匹配特殊字符時必須進行轉義,即放置反斜杠字\在特殊字符前面。

    特別字符描述
    \將下一個字符標記為一個特殊字符
    .匹配除換行符(\n、\r)之外的任何單個字符
    |匹配二者之一

限定符

  • 限定符用來指定正則表達式的一個給定組件的出現次數。

    字符描述
    *匹配前面的子表達式零次或多次。等價于 {0,}
    +匹配前面的子表達式一次或多次。等價于 {1,}
    ?匹配前面的子表達式零次或一次。等價于 {0,1}
    {n}n 是一個非負整數。匹配確定的 n 次
    {n,}n 是一個非負整數。至少匹配 n 次
    {n,m}m 和 n 均為非負整數,其中 n <= m 。最少匹配 n 次且最多匹配 m 次

捕獲元

  • 捕獲分組的捕獲匹配結果可以通過$n(表示第 n 個捕獲組的內容)查看。

    字符描述
    (exp)匹配 exp 并捕獲這一匹配
    (?:exp)匹配 exp 但不捕獲匹配結果。也就是說這是一個非捕獲匹配
    exp1(?=exp2)正向肯定預查。用于查找 exp2 前面的 exp1
    exp1(?!exp2)正向否定預查。用于查找后面不是 exp2 的 exp1
    (?<=exp2)exp1反向肯定預查,與正向肯定預查類似,只是方向相反。用于查找 exp2 后面的 exp1
    (?反向否定預查,與正向否定預查類似,只是方向相反。用于查找前面不是 exp2 的 exp1

定位符

  • 定位符將正則表達式固定到行首或行尾,不能與限定符一起使用。

    字符描述
    ^匹配輸入字符串開始的位置
    $匹配輸入字符串結尾的位置
    \b匹配一個單詞邊界,即單詞和空格間的位置
    \B匹配非單詞邊界

修飾符

  • 用于指定額外的匹配策略。位于表達式之外

    修飾符含義描述
    iignore 將匹配設置為不區分大小寫
    gglobal 全局匹配,查找所有的匹配項。
    mmultiline多行匹配,使邊界字符 ^ 和 $ 匹配每一行的開頭和結尾
    s特殊字符圓點 . 中包含換行符 \n默認情況下的圓點 . 是匹配除換行符 \n 之外的任何字符,加上 s 修飾符之后, . 中包含換行符 \n。

運算符優先級

  • 相同優先級的從左到右進行運算,不同優先級的運算先高后低。

    運算符描述
    \轉義符
    (), (?:), (?=), []圓括號和方括號
    *, +, ?, {n}, {n,}, {n,m}限定符
    ^, $, \任何元字符、任何字符定位點和序列
    |"或"操作字符具有高于替換運算符的優先級

在線練習

  • RegexOne-學習正則表達式
  • RegExr:學習,構建和測試RegEx
  • 在線正則表達式測試器和調試器

注意事項

  • 限定符 * 和 + 都是貪婪匹配,會匹配盡可能多的字符。
  • 在限定符的后面加上一個 ? 可以實現懶惰匹配,匹配盡可能少的字符。

參考資料

  • 正則表達式 – 教程 | 菜鳥教程
  • 正則表達式30分鐘入門教程

版權聲明:本文為「夢幻之心星」原創,依據 CC BY-NC-SA 4.0 許可證進行授權,轉載請附上原文出處鏈接及本聲明。


博客園地址:https://www.cnblogs.com/Sky-seeker微信公眾號:關注微信公眾號,獲取即時推送


總結

以上是生活随笔為你收集整理的正则不能输入特殊字符_正则表达式语法学习和在线练习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。