MySQL如何使用正則表達式?(代碼示例)

2021-01-21 php中文網

MySQL支持基於正則表達式和regexp運算符的另一種模式的匹配操作。下面本篇文章就帶大家認識一下MySQL的正則表達式(Regexp),通過示例來簡單介紹在MySQL中如何使用正則表達式(Regexp),希望對大家有所幫助。

MySQL 正則表達式(Regexp)的簡單介紹

1、它提供了強大而靈活的匹配模式,可以幫助我們為資料庫系統實現強大的搜索實用程序。

2、regexp是執行正則表達式模式匹配時使用的運算符,rlike是同義詞。

3、它還支持許多元字符,這些元字符在執行模式匹配時可以提供更大的靈活性和控制。

4、反斜槓用作轉義字符。如果使用了雙反斜槓,則僅在模式匹配中考慮。

5、不區分大小寫。

以下是正則模式表,可以與REGEXP 操作符一起使用。

使用示例:

下面通過簡單的示例來介紹MySQL 正則表達式(Regexp)的使用。

1、匹配字符串的開頭(^):

匹配name欄位以'sa'開頭的所有數據,例:Sample-sam,samarth。

SELECT name FROM student_tbl WHERE name REGEXP '^sa';

2、匹配字符串的結尾($):

匹配name欄位以'on'結尾的所有數據,例:norton,merton。

SELECT name FROM student_tbl WHERE name REGEXP 'on$';

3、匹配它前面的字符串的零或一個子表達式(?):

匹配title欄位包含'com'的所有數據,例:comedy ,romantic comedy。

SELECT title FROM movies_tbl WHERE title REGEXP 'com?';

4、匹配任何模式p1或p2或p3(p1 | p2 | p3):

匹配name欄位包含'be'或'ae'的所有數據,例: Abel,Baer。

SELECT name FROM student_tbl WHERE REGEXP 'be|ae' ;

5、匹配方括號([abc])之間列出的任何字符:

匹配name欄位包含'j'或'z'的所有數據,例:Lorentz,Rajs。

SELECT name FROM student_tbl WHERE REGEXP '[jz]' ;

6、匹配'a'到'z' 之間的任何單個小寫字母([a-z])([a-z]和(.)):

匹配name欄位中第一位包含「b」和「g」範圍內字母,第二位包含任何字符,第三位包含字母'a'的所有字符串數據,例: Tobias,sewall。

匹配任何單個字符(.)

SELECT name FROM student_tbl WHERE REGEXP '[b-g].[a]' ;

7、匹配方括號之間未列出的任何字符([^ abc]):

匹配所有不包含'j'或'z'的名稱。例: nerton,sewall。

SELECT name FROM student_tbl WHERE REGEXP '[^jz]' ;

8、匹配單詞結尾位置的子字符串[[:>:]]

匹配title欄位中以字符「ack」結尾的所有數據,例:Black。

SELECT title FROM movies_tbl WHERE REGEXP 'ack[[:>:]]';

9、匹配單詞開頭位置的子字符串[[:<:]]

匹配title欄位中以字符「for」開頭的所有數據,例 :Forgetting Sarah Marshal.。

SELECT title FROM movies_tbl WHERE title REGEXP '[[:<:]]for';

10、匹配字符類[:class:]:

ie [:lower:] - 小寫字符,[:digit:] - 數字字符等。

匹配title欄位中僅包含字母字符的所有數據,例:stranger things, Avengers。

SELECT title FROM movies_tbl WHERE REGEXP '[:alpha:]' ;

以上就是本篇文章的全部內容,希望能對大家的學習有所幫助。

相關焦點

  • 使用JavaScript對正則表達式進行解析
    (1)用模式驗證字符串;(2)在字符串中搜索;(3)替換字符串中的子字符串;(4)從字符串中提取信息;2、使用正則表達式對於本文,我們將介紹如何在JavaScript中使用正則表達式,儘管此處學習的概念也適用於其他語言。話雖如此,在其他語言中,它們對待正則表達式的方式可能有所不同。讓我們看一個示例,該示例將驗證字符串是否包含單詞Hello。
  • 代碼詳解:Python正則表達式的終極使用指南
    雖然想要實現上述功能聽起來很繁瑣,但是如果使用Python正則表達式模塊,就可以使這一操作更加簡單。假設要在一篇特定的文章中找出標點符號的數量。以狄更斯的作品文本為例。你通常會怎麼做?但如果有re模塊,則只需兩行代碼:import repattern = r"[;.,–]"print(len(re.findall(pattern,string)))-19本文討論的是最常用的正則表達式模式,以及一些經常使用的正則表達式函數。什麼是正則表達式?
  • Python(2):正則表達式的常見符號與作用,每個都有示例
    常見的正則表達式特殊符號為了便於讀者保存,這裡把符號以表格圖片的形式總結給大家,並就常見的正則表達式給出簡單的示例供大家參考、學習。點號(.)-匹配除換行符\n外的任意單個字符示例:a.o—匹配字母a和o且二者中間為任意單字符的字符串,如axo,a!
  • 正則表達式在VBA中間是如何應用?正則表達式的實現方式?
    在繼續學習正則元字符特性或編制自己的正則表達式時,常常需要對其測試.也可以自己編制VBA代碼進行測試,這樣做的好處是可以提高在今後實際工作應用正則表達式的能力。所以,先介紹正則與VBA的交互的相關知識,讓你在VBA中間使用正則表達式遊刃有餘。當然你也可以快速閱讀或直接越過本章內容,在你以後的實際具體工作應用時,直接查閱即可。
  • python正則表達式使用方法說明
    曾光紅/文 (同步發布豆瓜網)一、導入re庫python使用正則表達式要導入re庫。import re在re庫中。正則表達式通常被用來檢索查找、替換那些符合某個模式(規則)的文本。二、使用正則表達式步驟1、尋找規律;2、使用正則符號表示規律;3、提取信息,如果每一個字符都能匹配,則匹配成功;一旦有匹配不成功的字符則匹配失敗。
  • 給JAVA程式設計師的正則表達式一課
    「不會正則表達式,就算寫遍代碼也嘛不是」。說到正則表達式,可能動態語言的碼農Perl,Python,JS甚至是Golang的開發人員可能都熟悉。對Java碼農來說,可能CURD手到擒來,Spring Stuts Hibernat耳聞能詳,但是說到Regex RE模式,可能熟練的少。那麼,今天蟲蟲就來給廣大Java碼農來補補正則的課。
  • 正則表達式:如何匹配一個或多個字符?
    讀懂正則表達式就這麼簡單匹配純文本Ben是一個正則表達式。因為本身是純文本,所以看起來可能不像是一個正則表達式,但它的確是。正則表達式可以包含純文本(甚至可以只包含純文本)。當然,像這樣使用正則表達式是一種浪費,但把它作為我們學習正則表達式的起點還是很不錯的。
  • 在JavaScript字符串的search()方法中,如何匹配正則表達式?
    第三節:正則表達式語法在JavaScript中,對於正則表達式的定義,使用字面量表示法的基本語法如下:/模式/修飾符基本語法說明如下:使用兩個/來表示一個正則表達式匹配模式。第一個/後面跟匹配模式。例如:var patt = /Yido/i,Yido是一個簡單的匹配模式,用於字符串的搜索。第二個/後面跟修飾符標誌。
  • 學習Python正則表達式
    如何不需要一個接一個地複製和粘貼,就可以輕鬆地找到這些電話號碼?Python中的正則表達式(re)就可以解決這個問題!正則表達式正則表達式是一個具有特殊字符的序列。它有助於檢查字符串中的每個字符,看它是否與某個模式匹配:哪些字符在什麼位置出現了多少次。
  • 【第160期】指尖上的正則表達式–入門篇
    Perl的正則表達式源自於Henry Spencer編寫的regex,之後已演化成了pcre(Perl兼容正則表達式Perl Compatible Regular Expressions),pcre是一個由Philip Hazel開發的、為很多現代工具所使用的庫。正則表達式的第一個實用應用程式即為Unix中的 qed 編輯器。
  • 新手上路:圖文解讀助你理解和使用正則表達式
    選自janmeppe.com作者:Jan Meppe機器之心編譯參與:韓放、杜偉這篇博客是關於正則表達式(regex)的插圖指南,旨在為那些從來沒有使用過正則表達式,想嘗試但又望而生畏的新手提供一個簡單介紹。
  • Python中使用re模塊實現正則表達式的匹配字符串操作
    第八十二節:匹配字符串經過上一節比較枯燥的基礎內容,今天來看看如何利用正則表達式在Python中進行具體操作。在Python中使用正則表達式,首先要導入一個re模塊。re就是Regular Expression(正則表達式)的縮寫,所以導入re模塊就是導入「正則表達式模塊」。
  • Python「正則表達式」詳解(上)
    大家好,今天我們一起學習以下Python中的「正則表達式」,說到正則表達式,大家可能比較陌生,不過我卻要告訴你,你每天都在使用正則表達式,不要不承認,就問你最常見的,瀏覽器每天用不?淘寶經常逛不?你在搜索框裡輸入幾個文字,按下回車,就出來大量結果,你想想這是怎麼辦到的,是正則表達式,可以好不誇張的講,沒有正則表達式,就沒有搜尋引擎。
  • 知道這5種正則表達式,能讓你少些2000行代碼
    正則表達式,又稱規則表達式。(英語:Regular Expression,在代碼中常簡寫為regex、regexp或RE),計算機科學的一個概念。一個十分古老而又強大的文本處理工具,僅僅用一段非常簡短的表達式語句,便能夠快速實現一個非常複雜的業務邏輯。
  • Python正則表達式:特殊符號和字符
    正表達式為高級的文本模式匹配,抽取,與/或文本形式的搜索和替換功能提供了基礎。簡而言之,正則表達式(簡稱regex)是由一些字符和特殊符號組成的字符串,它描述了模式的重複或者表達多個字符。python通過標準庫中的re模塊來支持正則表達式。
  • r語言實戰第一章示例實踐解答_python代碼示例 - CSDN
    解答:這是考察sed命令的a字符功能,示例代碼如下。 [root@oldboy test]# sed -i '2a I teacher linux.' oldboy.txt #<==這裡使用了sed內置命令a追加功能,在第二行後面增加一行,內容為「I teacher linux.」。
  • 正則表達式的基礎知識和Python中的基本應用
    正則表達式通常被用來檢索、替換那些符合某個模式(規則)的文本,簡單來說它就是記錄文本規則的代碼,再通過這種規則判斷和篩選字符串。多種程序設計語言支持正則表達式,Python也不例外。正則表達式其實就是立規矩的設置代碼今天來學習一些使用正則表達式需要掌握的一些知識。
  • PHP正則表達式的快速學習方法
    此外,象JavaScript這種客戶端的腳本語言也提供了對正則表達式的支持。由此可見,正則表達式已經超出了某種語言或某個系統的局限,成為人們廣為接受的概念和功能。正則表達式可以讓用戶通過使用一系列的特殊字符構建匹配模式,然後把匹配模式與數據文件、程序輸入以及WEB頁面的表單輸入等目標對象進行比較,根據比較對象中是否包含匹配模式,執行相應的程序。
  • 帶您一小時玩轉正則表達式
    在日常開發中我們經常會對用戶輸入的數據進行校驗、對字符串進行提取或者替換,這時候往往會使用正則來實現,那麼今天我給大家分享下正則表達式的一些知識。一、什麼是正則表達式正則表達式是一種描述字符串結果的語法規則,是一個特定的格式化模式,可以匹配、替換、截取匹配的字符串。
  • 如何徹底搞懂面向 Web 開發者的正則表達式?
    對於正則表達式,開發者如何跳出雲裡霧裡的謎團?作者 | Chris Achard譯者 | 彎月,責編 | 郭芮以下為譯文:正則表達式能在字符串中查找匹配特定模式的子字符串。在JavaScript中,可以通過斜線 / / 來創建,也可以通過new RegExp()來創建,然後就能使用match、test、replace等方法。你可以事先定義正則表達式,也可以在調用方法時隨時定義。每次匹配一個字符,將多個字符放到方括號 [] 中可以匹配多個匹配的字符。用橫線 - 匹配字符範圍。