狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

SQL匹配和處理字符串的強大工具:正則表達式

admin
2024年9月4日 10:22 本文熱度 459
01

什么是正則表達式?有何作用?

正則表達式(Regular Expressions, 簡稱 regex 或 regexp)是一種用于匹配和處理字符串的強大工具。它就像是一把多功能的瑞士軍刀,可以幫助你在處理文本時做很多事情:

1.檢查用戶輸入是否符合特定格式:比如,你在網上注冊賬號時,網站會要求你輸入電子郵件地址。正則表達式可以檢查你輸入的是不是一個看起來像真的電子郵件地址,比如檢查是否包含@符號,后面有沒有域名等。

2.在文本中查找符合特定模式的字符串:假如你有一大堆文本,想找出里面所有的電話號碼或者郵箱地址,正則表達式就能幫你快速找到這些信息,就像用篩子篩東西一樣,把符合規則的部分篩選出來。

3.替換文本中符合特定模式的字符串:比如,你寫了一篇文章,想把所有的“你好”改成“大家好”,正則表達式就能幫你找到所有的“你好”,然后統一替換成“大家好”。

4.分割字符串:如果你有一個長字符串,里面包含了很多信息,比如一個字符串是“姓名:張三,年齡:25,職業:程序員”,你可以用正則表達式來把這個字符串分割成姓名、年齡和職業三部分,方便你處理。


02

正則表達式的基本構成 

1.字面字符:直接匹配文本中的字符。例如,abc 匹配 abc。

2.特殊字符:

    • .:匹配任何單個字符(除換行符外)。
    • ^:匹配字符串的開頭。    
    • $:匹配字符串的結尾。
    • \:轉義字符,用于匹配特殊字符。例如,\. 匹配實際的句點字符。

3.字符類

    • []:定義字符集合。例如,[abc] 匹配 a、b 或 c。
    • [^]:定義字符排除集合。例如,[^0-9] 匹配非數字字符。
    • -:用于定義字符范圍。例如,[a-z] 匹配小寫字母。

4.量詞:

    • *:匹配前面的字符零次或多次。例如,a* 匹配零個或多個 a。

    • +:匹配前面的字符一次或多次。例如,a+ 匹配一個或多個 a。

    • ?:匹配前面的字符零次或一次。例如,a? 匹配零個或一個 a。

    • {n}:匹配前面的字符恰好 n 次。例如,a{3} 匹配三個 a。

    • {n,}:匹配前面的字符至少 n 次。例如,a{2,} 匹配兩個或更多 a。

    • {n,m}:匹配前面的字符至少 n 次,但不超過 m 次。例如,a{2,4} 匹配兩個到四個 a。

5.預定義字符集:

    • \d:匹配任何數字字符,相當于 [0-9]。

    • \D:匹配任何非數字字符,相當于 [^0-9]。

    • \w:匹配任何字母數字字符和下劃線,相當于 [a-zA-Z0-9_]。

    • \W:匹配任何非字母數字字符和下劃線,相當于 [^a-zA-Z0-9_]。    

    • \s:匹配任何空白字符(包括空格、制表符、換行符)。

    • \S:匹配任何非空白字符。

6.分組和捕獲:

    • ():用于分組和捕獲匹配的子字符串。例如,(abc)+ 匹配一個或多個 abc。
    • (?:):用于分組但不捕獲。例如,(?:abc)+ 匹配一個或多個 abc,但不捕獲。

7.替代:

    • |:表示“或”操作。例如,a|b 匹配 a 或 b。

8.斷言:

    • (?=...):正向前瞻,匹配當前位置后面跟著的模式。例如,a(?=b) 匹配 a,當 a 后面跟著 b 時。
    • (?!...):負向前瞻,匹配當前位置后面不跟著的模式。例如,a(?!b) 匹配 a,當 a 后面不跟著 b 時。


更詳細的參考文檔如下:  

遇到需要正則表達式匹配的問題時可以參考。當然,現在更方便的方式是帶著問題去問chatGPT

PostgreSQL

PostgreSQL 9.3 文檔: 模式匹配 - Redrock Postgres (rockdata.net):https://www.rockdata.net/zh-cn/docs/9.3/functions-matching.html#FUNCTIONS-LIKE

MySQL:  

MySQL 正則表達式 | 菜鳥教程 (runoob.com):https://www.runoob.com/mysql/mysql-regexp.html

Python:  

Python 正則表達式 | 菜鳥教程 (it028.com):http://it028.com/python-reg-expressions.html

正則表達式指南 — Python 3.12.5 文檔:https://docs.python.org/zh-cn/3.12/howto/regex.html


03

正則表達式的使用示例(適用于PostgreSQL)

1.基本匹配

SELECT regexp_matches('The quick brown fox', 'quick');
-- 結果: {quick}

解釋:匹配字符串中第一次出現的 quick。

2.字符類

SELECT regexp_matches('abc 123', '[a-z]+');
-- 結果: {abc}

解釋:匹配連續的小寫字母字符。

3.量詞

SELECT regexp_matches('aaabb', 'a{2,4}');
-- 結果: {aaaa}

解釋:匹配 2 到 4 個連續的 a。

4.捕獲組    

SELECT regexp_matches('2024-08-28', '(\d{4})-(\d{2})-(\d{2})');
-- 結果: {2024, 08, 28}

解釋:捕獲年、月、日。

5.前瞻

SELECT regexp_matches('123abc456', '\d+(?=abc)');
-- 結果: {123}

解釋:匹配 123,當它后面跟著 abc 時。

正則表達式是處理和操作文本的強大工具,通過定義復雜的匹配模式,能夠高效地完成各種文本處理任務。掌握正則表達式的基本語法和功能,將大大提升文本數據處理的能力。

該文章在 2024/9/4 11:47:23 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2024 ClickSun All Rights Reserved