Notepad++正則表達全解

摘要:

Notepad++正則表達式符號大全包含11類常用語法:基礎符號(.^$+?等)、預定義字符類(\d\w\s等)、錨點(\b\B)、量詞({n,m})、分組引用(()$1)、字符集合([])、轉義字符(.)、斷言((?=))、換行符(\n\r)、非貪婪模式(?+?)和特殊標記((?i))。每個符號均配有功能說明和示例,如^匹配行首、\d匹配數字、.*?最短匹配等。特別說明Notepad++行模式特點,替換用$1引用分組,斷言零寬度等特性。文檔按邏輯分區排版,全面覆蓋從基礎到高級的正則用法,適合快速查詢和深入

下面是Notepad++ 正則表達式符號說明(全量整理版)已整合邏輯與表達,并保持分區排版清晰、內容全面且每項帶詳細示例:


Notepad++ 正則表達式符號與用法大全

一、基礎符號(最常用)

符號含義/功能示例說明/結果
.匹配除換行外任意單個字符a.c匹配abcaxca_c
^匹配行首^abc匹配以abc開頭的行
$匹配行尾abc$匹配以abc結尾的行
*前一項重復0次或多次ab*c匹配acabcabbcabbbc
+前一項重復1次或多次ab+c匹配abcabbcabbbc,不匹配ac
?前一項重復0次或1次ab?c匹配acabc
{n}前一項重復n次a{3}匹配aaa
{n,}前一項至少重復n次a{2,}匹配aaaaaaaaa
{n,m}前一項重復n到m次a{2,4}匹配aaaaaaaaa,不匹配aaaaaa
``邏輯或,匹配左邊或右邊內容`cat
()分組(abc)+匹配abcabcabc
[]匹配括號內任一字符[aeiou]匹配任一元音字母
[^]匹配不在括號內的任一字符[^0-9]匹配非數字字符
\轉義特殊字符或引出特殊含義\.匹配.本身

例外用法:

  • [-] 表示“-”本身,如 [a\-z] 僅匹配a-z(不代表區間)。


二、預定義字符類(常用速查)

符號含義/功能示例說明/結果
\d匹配任一數字(等價于[0-9]\d+匹配數字串,如12345
\D匹配非數字(等價于[^0-9]\D+匹配非數字,如abc
\w匹配字母/數字/下劃線(等價于[A-Za-z0-9_]\w+匹配單詞、變量名,如word_123
\W匹配非字母/數字/下劃線\W+匹配標點或空格
\s匹配空白字符(空格、Tab、換行等)\s+匹配空格、Tab等
\S匹配非空白字符\S+匹配非空格內容

例外用法:

  • [\d\s] 同時匹配數字和空白字符。


三、錨點(定位)

符號含義/功能示例說明/結果
^行首^Hello匹配以Hello開頭的行
$行尾end$匹配以end結尾的行
\b單詞邊界\bcat\b匹配獨立單詞cat
\B非單詞邊界\Bcat\B匹配如bobcat里的cat

例外用法:

  • ^\s*$ 匹配僅含空白的整行。


四、量詞(重復控制)

符號含義/功能示例說明/結果
*0次或多次(貪婪)a*匹配""aaaaaa
*?0次或多次(非貪婪)a*?盡可能少匹配a
+1次或多次(貪婪)a+匹配aaaaaa
+?1次或多次(非貪婪)a+?盡可能少匹配a
?0次或1次a?匹配""a
??0次或1次(非貪婪)a??最少匹配
{n}恰好n次a{3}匹配aaa
{n,}至少n次a{2,}匹配aaaaaaaaa...
{n,m}n到m次a{2,4}匹配aaaaaaaaa,不匹配aaaaaa


五、分組與引用

符號含義/功能示例說明/結果
()分組(abc)+匹配abcabcabc
(?: )非捕獲分組(?:abc)+匹配abcabcabc,不捕獲內容
\1, \2引用第1、2...個分組內容(在替換時)(\w+) \1匹配如abc abc,\1為第1組內容
$1, $2替換時引用分組內容(僅替換用)查找(cat), 替換為$1scat替換成cats
$0替換時代表整段匹配內容查找.*, 替換->$0<-整行加前后綴

例外用法:

  • ((a)(b))$1=ab, $2=a, $3=b


六、字符集合

符號含義/功能示例說明/結果
[abc]匹配a或b或c中的一個字符[abc]匹配abc
[^abc]匹配非a、b、c的單字符[^abc]匹配除abc外的字符
[a-z]匹配a到z之間任一小寫字母[a-z]匹配ab...z
[A-Z]匹配A到Z之間任一大寫字母[A-Z]匹配AB...Z
[0-9]匹配任一數字[0-9]匹配0-9
[a-zA-Z0-9]匹配大小寫字母和數字[a-zA-Z0-9]匹配任何字母或數字
[]空集合,匹配不到任何內容[]不會有結果

例外用法:

  • [-abc][-]放最前面表示“-”本身。


七、轉義與特殊字符

符號含義/功能示例說明/結果
\.匹配點號.本身a\.b匹配a.b
\\匹配反斜杠\本身\\d匹配\d文本
\*匹配星號*本身a\*b匹配a*b
\( \)匹配小括號\([0-9]+\)匹配帶括號的數字如(123)
\[ \]匹配方括號\[[a-z]+\]匹配如[abc]
|匹配豎線``本身a|b


八、斷言與邏輯運算(高級,“與”、“或”)

寫法/符號邏輯示例表達式說明/結果
``邏輯或`apple
(?=exp1)(?=exp2)邏輯與^(?=.*apple)(?=.*banana).*同時包含apple和banana,順序無關
(?=exp)正向先行斷言foo(?=bar)匹配foobar中的foo,后跟bar
(?!exp)否定先行斷言foo(?!bar)匹配foo后面不是bar的位置
(?<=exp)正向后行斷言(?<=@)\w+匹配郵箱@后面的用戶名(Notepad++ 8.3+支持)
(?<!exp)否定后行斷言(?<!@)\w+匹配不是@后面的單詞(Notepad++ 8.3+支持)

邏輯與例外補充:

  • 多個條件用多個(?=...)疊加,如 ^(?=.*cat)(?=.*dog).* 表示一行同時有cat和dog。


九、換行與制表符

符號含義/功能示例說明/結果
\n換行符(LF,Unix)abc\ndef匹配跨行內容
\r回車符(CR,Win)\r\nWindows文本換行
\t制表符Taba\tb匹配a后跟Tab再跟b


十、非貪婪模式

符號含義/功能示例說明/結果
*?非貪婪0次或多次".*?"匹配最短一對引號內的內容
+?非貪婪1次或多次<.+?>匹配最短的HTML標簽
??非貪婪0或1次ab??盡量不匹配b


十一、其它

符號含義/功能示例說明/結果
(?i)匹配時忽略大小寫(置于表達式前)(?i)abc匹配abcABC
(?#...)注釋,不參與匹配(?#note)正則中的說明


實用組合示例

  • 一行同時包含 apple 和 banana(無順序要求)
    查找:^(?=.*apple)(?=.*banana).*

  • 行首是數字且有字母
    查找:^(?=\d)(?=.*[a-zA-Z]).*

  • 替換所有行首數字為#加數字
    查找:^(\d+) 替換:#$1

  • 提取郵箱用戶名
    查找:^(\w+)@(\w+\.\w+)$ 替換:$1

  • 最短匹配HTML標簽
    查找:<[^>]+?>


補充說明

  • Notepad++ 默認正則“行”模式,點.不匹配換行,可勾選“點匹配換行”。

  • 替換時分組用 $1,查找里引用分組用 \1

  • 斷言是零寬度判斷,不消耗字符。

  • 部分高階特性(如命名分組等)Notepad++ 暫不支持。

參考官方說明:

  • Notepad++ 用戶手冊:正則表達式支持說明

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/88130.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/88130.shtml
英文地址,請注明出處:http://en.pswp.cn/web/88130.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

前后端分離(java) 和 Nginx在服務器上的完整部署方案(redis、minio)

一、準備工作 服務器環境要求 銀河麒麟 V10 操作系統 開放端口&#xff1a;MinIO (9000、9001)、 Redis (6379)、應用服務 jar包(18888)、前端服務(8080) 系統用戶&#xff1a;具有 sudo 權限的用戶 操作&#xff1a;需要先有必備的工具前端的vsCode,webStrom、后臺的idea&…

貪心算法:簡單而高效的求解策略C++

貪心算法詳解及C實現 1. 什么是貪心算法 貪心算法&#xff08;Greedy Algorithm&#xff09;是一種在每一步選擇中都采取在當前狀態下最好或最優&#xff08;即最有利&#xff09;的選擇&#xff0c;從而希望導致結果是全局最好或最優的算法策略。 貪心算法與動態規劃不同在于它…

IDEA 中使用 <jsp:useBean>動作指令時,class屬性引用無效

問題&#xff1a;在 IDEA 中創建 Java Web項目&#xff0c;在src/model包下存在一個Student類該類中包含&#xff1a;全參構造器、私有屬性的get/set方法。然后在 jsp 頁面中使用 <jsp:useBean>創建Student類的對象&#xff1a;訪問頁面時報錯&#xff1a;原因&#xff1…

【網絡】Linux 內核優化實戰 - net.core.flow_limit_table_len

目錄參數作用查看與修改調優建議相關警告net.core.flow_limit_table_len 是 Linux 內核中的一個網絡參數&#xff0c;用于控制**流限制表&#xff08;Flow Limit Table&#xff09;**的大小。這個表主要用于限制網絡流量中單個"流"&#xff08;通常指來自同一源IP、端…

前端開發常見問題技術文章大綱

前端開發常見問題技術文章大綱 常見性能優化問題 頁面加載速度慢的原因及解決方案渲染阻塞資源的優化方法內存泄漏的檢測與修復 跨瀏覽器兼容性問題 不同瀏覽器對CSS和JavaScript的支持差異Polyfill和Shim的使用場景如何利用工具檢測兼容性問題 響應式設計挑戰 媒體查詢的最佳實…

Redis常見性能問題和解決方案有哪些?

Redis 作為高性能的內存數據庫&#xff0c;在實際使用中可能會遇到性能問題。以下是常見的性能問題及其解決方案&#xff0c;用中文總結如下&#xff1a; 1. 高延遲問題 問題描述&#xff1a;客戶端請求響應時間過長&#xff0c;可能由于網絡、命令復雜度或服務器負載導致。 解…

閃測儀應用案例丨手機中框如何突破「尺寸檢測」瓶頸?

越來越多的手機中框&#xff0c;正改為更復雜的鏤空設計&#xff0c;這種設計不僅保持了手機中框的結構強度&#xff0c;還進一步減輕了機身重量&#xff0c;同時提升了散熱性能。這讓手機中框的自動化生產增加了很多難點&#xff0c;其中的尺寸檢測就遇到了許多瓶頸。? 尺寸精…

【字節跳動】數據挖掘面試題0011:介紹下時間序列分析常用知識點

文章大綱時間序列分析全面解析一、時間序列分析的基本概念二、時間序列分析的主要方法1. 描述性分析2.統計分析方法3.預測模型&#xff08;1&#xff09;傳統統計模型&#xff08;2&#xff09;現代機器學習模型三、時間序列分析的應用場景四、模型評估五、在字節跳動的應用場景…

ubuntu中交叉編譯iperf3到目標平臺xilinx

注&#xff1a;此文為ubuntu x86系統編譯程序到xilinx aarch64系統中。 一、工具準備 x86上編譯aarch64的編譯器 sudo apt install gcc-aarch64-linux-gnu g-aarch64-linux-gnu #保證編譯器在環境變量中&#xff0c;嘗試執行aarch64-linux-gnu-gcc 目標平臺的根文件系統rootf…

Java-數據結構-集合框架

什么是集合框架集合本質是java所實現的一組數據結構&#xff0c;提供了不同的增刪改查方法。集合就是定義了接口&#xff0c;再通過不同的類去實現定義的接口&#xff0c;這些實現了接口的類就是集合類&#xff0c;例如list&#xff0c;stack&#xff0c;map。集合框架的重要性…

黑馬點評系列問題之基礎篇16jedis redis依賴引入后仍然還是報錯

問題描述依賴已經導入進去了&#xff0c;在倉庫里有***.jar和***.pom這兩個文件&#xff0c;但是點開右面的maven還是有很多爆紅。點擊maven里的更新還是不行。解決點到配置文件pom.xml在lombok這個依賴的代碼下面&#xff0c;添加上版本號&#xff0c;刷新一下右鍵單擊pom.xml…

SQL 一鍵轉 GORM 模型,支持字段注釋、類型映射、tag 自定義!

SQL 一鍵轉 GORM 模型&#xff0c;支持字段注釋、類型映射、tag 自定義&#xff01; 在使用 Golang GORM 開發項目時&#xff0c;你是否也經歷過這些「重復性痛苦」&#xff1a; ? 拿到建表 SQL&#xff0c;要手動寫 struct? 字段多、類型復雜&#xff0c;還要寫 json、go…

前端計算機視覺:使用 OpenCV.js 在瀏覽器中實現圖像處理

一、OpenCV.js 簡介與環境搭建OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一個強大的計算機視覺庫&#xff0c;廣泛應用于圖像和視頻處理領域。傳統上&#xff0c;OpenCV 主要在后端使用 Python 或 C 等語言。但隨著 WebAssembly (Wasm) 技術的發展&…

開發在線商店:基于Vue2+ElementUI的電商平臺前端實踐

Hi&#xff0c;我是布蘭妮甜 &#xff01;在當今數字化時代&#xff0c;電子商務已成為商業領域的重要組成部分。開發一個功能完善、用戶友好的在線商店應用對于企業拓展市場至關重要。本文將詳細介紹如何使用Vue2框架配合ElementUI組件庫開發一個完整的在線商店應用。 文章目錄…

vue3 隨手筆記9--組件通信方式9/2--自定義事件

一、什么是自定義事件&#xff1f; 自定義事件是 Vue 組件間通信的一種機制。子組件通過 this.$emit(事件名, 數據) 觸發一個事件。父組件監聽這個事件并執行相應的邏輯。 二、基本使用 準備工作 demo 繼續使用筆記8中的 鏈接為demo 在views文件夾下 創建新的文件夾為cust…

深入理解Reactor調試模式:Hooks.onOperatorDebug() vs ReactorDebugAgent.init()

在現代Java開發中&#xff0c;調試Reactor流是確保應用程序性能和穩定性的關鍵步驟。Reactor調試模式提供了多種初始化方法&#xff0c;其中最常用的兩種是Hooks.onOperatorDebug()和ReactorDebugAgent.init()。本文將深入探討這兩種方法的區別&#xff0c;幫助開發者選擇最適合…

QT6 源(151)模型視圖架構里的表格窗體視圖 QTableWidget 篇一:先學習倆屬性以及 public 權限的公共成員函數,

&#xff08;1&#xff09;本篇的內容因為是子類&#xff0c;內容較視圖基類簡單了一些。又因為時間緊迫&#xff0c;不再詳細舉例了。詳細的測試可以滿足好奇心&#xff0c;也可以增強寫代碼的自信心。奈何時間不夠。不完美&#xff0c;就不完美了。以后有機會&#xff0c;再補…

ffmpeg 下載、安裝、配置、基本語法、避坑指南(覆蓋 Windows、macOS、Linux 平臺)

ffmpeg 下載、安裝、配置、基本語法、避坑指南&#xff08;覆蓋 Windows、macOS、Linux 平臺&#xff09; 本文是一篇面向初學者的超詳細 FFmpeg 教程&#xff0c;包括 FFmpeg 下載、安裝、配置、基本語法 與 避坑指南。覆蓋 Windows、macOS、Linux 平臺的安裝方式與 環境變量…

Kotlin 安裝使用教程

一、Kotlin 簡介 Kotlin 是 JetBrains 開發的一種現代、靜態類型的編程語言&#xff0c;完全兼容 Java&#xff0c;主要應用于 Android 開發、后端服務開發、前端 Web 開發&#xff08;Kotlin/JS&#xff09;和多平臺開發&#xff08;Kotlin Multiplatform&#xff09;。 二、…

day08-Elasticsearch

黑馬商城作為一個電商項目&#xff0c;商品的搜索肯定是訪問頻率最高的頁面之一。目前搜索功能是基于數據庫的模糊搜索來實現的&#xff0c;存在很多問題。 首先&#xff0c;查詢效率較低。 由于數據庫模糊查詢不走索引&#xff0c;在數據量較大的時候&#xff0c;查詢性能很…