欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

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

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

什么是正則表達(dá)式?有何作用?

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

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

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

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

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


02

正則表達(dá)式的基本構(gòu)成 

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

2.特殊字符:

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

3.字符類

    • []:定義字符集合。例如,[abc] 匹配 a、b 或 c。
    • [^]:定義字符排除集合。例如,[^0-9] 匹配非數(shù)字字符。
    • -:用于定義字符范圍。例如,[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.預(yù)定義字符集:

    • \d:匹配任何數(shù)字字符,相當(dāng)于 [0-9]。

    • \D:匹配任何非數(shù)字字符,相當(dāng)于 [^0-9]。

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

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

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

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

6.分組和捕獲:

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

7.替代:

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

8.斷言:

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


更詳細(xì)的參考文檔如下:  

遇到需要正則表達(dá)式匹配的問題時可以參考。當(dāng)然,現(xiàn)在更方便的方式是帶著問題去問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 正則表達(dá)式 | 菜鳥教程 (runoob.com):https://www.runoob.com/mysql/mysql-regexp.html

Python:  

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

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


03

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

1.基本匹配

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

解釋:匹配字符串中第一次出現(xiàn)的 quick。

2.字符類

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

解釋:匹配連續(xù)的小寫字母字符。

3.量詞

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

解釋:匹配 2 到 4 個連續(xù)的 a。

4.捕獲組    

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

解釋:捕獲年、月、日。

5.前瞻

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

解釋:匹配 123,當(dāng)它后面跟著 abc 時。

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

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