正則表達式 – 簡介

2021-01-05 程式設計師陌然

正則表達式 - 簡介

除非您以前使用過正則表達式,否則您可能不熟悉此術語。但是,毫無疑問,您已經使用過不涉及腳本的某些正則表達式概念。

例如,您很可能使用 ? 和 * 通配符來查找硬碟上的文件。通配符匹配文件名中的單個字符,而 * 通配符匹配零個或多個字符。像 data?.dat 這樣的模式將查找下列文件:

data1.datdata2.datdatax.datdataN.dat

使用 * 字符代替 ? 字符擴大了找到的文件的數量。data*.dat 匹配下列所有文件:

data.datdata1.datdata2.datdata12.datdatax.datdataXYZ.dat

儘管這種搜索方法很有用,但它還是有限的。通過理解 * 通配符的工作原理,引入了正則表達式所依賴的概念,但正則表達式功能更強大,而且更加靈活。

正則表達式的使用,可以通過簡單的辦法來實現強大的功能。下面先給出一個簡單的示例:

^.+@.+\\..+$

繼續閱讀本教程將讓您也可以自由應用這樣的代碼。

為什麼使用正則表達式?

典型的搜索和替換操作要求您提供與預期的搜索結果匹配的確切文本。雖然這種技術對於對靜態文本執行簡單搜索和替換任務可能已經足夠了,但它缺乏靈活性,若採用這種方法搜索動態文本,即使不是不可能,至少也會變得很困難。

通過使用正則表達式,可以:

測試字符串內的模式。例如,可以測試輸入字符串,以查看字符串內是否出現電話號碼模式或信用卡號碼模式。這稱為數據驗證。替換文本。可以使用正則表達式來識別文檔中的特定文本,完全刪除該文本或者用其他文本替換它。基於模式匹配從字符串中提取子字符串。可以查找文檔內或輸入域內特定的文本。例如,您可能需要搜索整個網站,刪除過時的材料,以及替換某些 HTML 格式標記。在這種情況下,可以使用正則表達式來確定在每個文件中是否出現該材料或該 HTML 格式標記。此過程將受影響的文件列表縮小到包含需要刪除或更改的材料的那些文件。然後可以使用正則表達式來刪除過時的材料。最後,可以使用正則表達式來搜索和替換標記。

發展歷史

正則表達式的"祖先"可以一直上溯至對人類神經系統如何工作的早期研究。Warren McCulloch 和 Walter Pitts 這兩位神經生理學家研究出一種數學方式來描述這些神經網絡。

1956 年, 一位叫 Stephen Kleene 的數學家在 McCulloch 和 Pitts 早期工作的基礎上,發表了一篇標題為"神經網事件的表示法"的論文,引入了正則表達式的概念。正則表達式就是用來描述他稱為"正則集的代數"的表達式,因此採用"正則表達式"這個術語。

隨後,發現可以將這一工作應用於使用 Ken Thompson 的計算搜索算法的一些早期研究,Ken Thompson 是 Unix 的主要發明人。正則表達式的第一個實用應用程式就是 Unix 中的 qed 編輯器。

如他們所說,剩下的就是眾所周知的歷史了。從那時起直至現在正則表達式都是基於文本的編輯器和搜索工具中的一個重要部分。

應用領域

目前,正則表達式已經在很多軟體中得到廣泛的應用,包括 *nix(Linux, Unix等)、HP 等作業系統,PHP、C#、Java 等開發環境,以及很多的應用軟體中,都可以看到正則表達式的影子。

C# 正則表達式

在我們的 C# 教程中,C# 正則表達式 這一章節專門介紹了有關 C# 正則表達式的知識。

Java 正則表達式

在我們的 Java 教程中,Java 正則表達式 這一章節專門介紹了有關 Java 正則表達式的知識。

JavaScript 正則表達式

在我們的 JavaScript 教程中,JavaScript RegExp 對象 這一章節專門介紹了有關 JavaScript 正則表達式的知識,同時我們還提供了完整的 JavaScript RegExp 對象參考手冊。

Python 正則表達式

在我們的 Python 基礎教程中,Python 正則表達式 這一章節專門介紹了有關 Python 正則表達式的知識。

Ruby 正則表達式

在我們的 Ruby 教程中,Ruby 正則表達式 這一章節專門介紹了有關 Ruby 正則表達式的知識。

歡迎大家把關心的話題寫在評論區,我會作為後續選題,希望創作出更多大家喜歡的內容。

相關焦點

  • Python正則表達式簡介
    為此,我們可以使用正則表達式(Regular Expression,Regex)。在本文中,我將向你展示它的概念和應用,以解決數據科學中的問題,特別是使用Python對文本進行預處理。大綱我將本文分為兩個部分:正則表達式的概念正則表達式的應用正則表達式的概念正則表達式,或者我們稱之為Regex或RE,是一種特殊類型的字符串,可用於匹配字符串中的術語或單詞。
  • Python中的正則表達式及其常用匹配函數用法簡介
    /1 前言/正則表達式是一個特殊的字符序列,它能幫助你方便的檢查一個字符串是否與某種模式匹配。在這篇文章之前,小編整理過Python正則表達式系列文章,如下所示:1. Python正則表達式初識(一)2.
  • 正則表達式中的 .*? 或 .*+ 的意思
    正則表達式簡介正則表達式,又稱規則表達式。(英語:Regular Expression,在代碼中常簡寫為regex、regexp或RE),計算機科學的一個概念。正則表達式通常被用來檢索、替換那些符合某個模式(規則)的文本。許多程序設計語言都支持利用正則表達式進行字符串操作。例如,在Perl中就內建了一個功能強大的正則表達式引擎。
  • 正則表達式在VBA中間是如何應用?正則表達式的實現方式?
    Hi,大家好,本章節開始將會從零開始和大家用圖文的方式,讓你從零基礎學會正則表達式!有興趣的小夥伴可以持續關注我,或者在專欄中進行查看自我學習,願與君攜手前行!在上一個章節說到正則表達式的入門級知識點,本節將會與大家分享一下正則表達式的是具體實現方式是怎麼樣的?
  • Python正則表達式,從入門到實戰,精華都在這裡
    正則表達式的相關知識Python的中 re 模塊,主要是用來處理正則表達式一個利用 re 模塊通過正則表達式來進行網頁數據的爬取和存儲1.1 正則表達式及作用正則表達式的英文是 regular expression,通常簡寫為 regex、regexp 或者RE,
  • Python學習第135課——初步了解正則表達式以及正則表達式的用法
    從現在開始,我們學習正則表達式。正則表達式,又稱規則表達式。(英語:Regular Expression,在代碼中常簡寫為regex、regexp或RE),計算機科學的一個概念。正則表達式通常被用來檢索、替換那些符合某個模式(規則)的文本。簡單說,正則表達式就是查找、替換字符串的模式,這種模式也是一個字符串序列。
  • 正則表達式 – 匹配規則
    正則表達式 - 匹配規則基本模式匹配一切從最基本的開始。模式,是正規表達式最基本的元素,它們是一組描述字符串特徵的字符。模式可以很簡單,由普通的字符串組成,也可以非常複雜,往往用特殊的字符表示一個範圍內的字符、重複出現,或表示上下文。
  • JavaScript正則表達式常用技巧
    正則表達式的掌握程度能粗略地看出程式設計師的技術底子,所以技術面試、編程競賽等 都特別喜歡考察正則表達式。本篇就帶你一起夯實一下 JavaScript 正則表達式的一些使用技巧:創建正則表達式在 JavaScript 的世界,創建正則表達式有2個方法: (1)使用一個正則表達式字面量,其由包含在斜槓之間的模式組成。
  • JavaScript高級什麼是正則以及正則表達式的簡單運用
    在實際開發中 ,經常會用到一些表單的驗證 ,提交表單的時候一般都會預校驗 ,比如手機號填寫是否合格 ,用戶暱稱填寫是否規範等 ,這些就要用到正則表達式什麼是正則表達式?用於匹配規律規則的表達式,正則表達式最初是科學家對人類神經系統的工作原理的早期研究,現在在程式語言中有廣泛的應用。正則表通常被用來檢索、替換那些符合某個模式(規則)的文本。
  • 漫談Linux中的正則表達式
    一、概述正則表達式(Regular Expression)通常被用來檢索、替換那些符合某個模式(規則)的文本。目前多種程序開發語言均支持常規的正則表達式。作為一名系統、運維工程師,正則表達在日常工作中也比較常用。因此,掌握常用的正則表達式顯得十分重要。
  • VBA專用正則表達式測試工具 常用表達式及標準正則代碼模塊
    最新在出VBA正則表達式的視頻教程,找了一圈沒找到好用的VBA正則表達式測試工具,沒辦法還是老規矩,自己動手豐衣足食,擼了一個直播差點翻車 ,不過最後還是完成了,整個開發過程在VIP學員釘釘群可以看回放 主要功能軟體界面一目了然 支持最大化自適應窗口
  • 正則表達式(二)
    5.基本正則表達式&擴展正則表達式區別:正則表達式的擴展正則(Extended規範)和基本正則(Basic規範)下,有些字符因此,grep工具帶上-E選項,表示使用擴展正則來進行匹配,若沒有該選項,則表示使用基準正則來進行匹配。
  • Python「正則表達式」詳解(上)
    大家好,今天我們一起學習以下Python中的「正則表達式」,說到正則表達式,大家可能比較陌生,不過我卻要告訴你,你每天都在使用正則表達式,不要不承認,就問你最常見的,瀏覽器每天用不?淘寶經常逛不?你在搜索框裡輸入幾個文字,按下回車,就出來大量結果,你想想這是怎麼辦到的,是正則表達式,可以好不誇張的講,沒有正則表達式,就沒有搜尋引擎。
  • 看完你就會正則表達式了
    最近看了一篇關於正則表達式的學習筆記,覺得講的非常好,更有圖形化的神器相助,想不學會都難,所以想轉給大家看看。話說不是開發為啥要學正則表達式這種看似很晦澀的東西呢,因為現在很多搜索的場景都是支持正則表達式的,學會了正則表達式就有如一把利劍在手。本文較長,建議抽40分鐘完整的時間一次讀完再慢慢消化。
  • 詳細介紹正則表達式
    正則是獨立於程式語言的一個學科,用於解決模式匹配問題,Javascript提供了對於正則支持,此外,Java、c、python也都支持正則。正則可以應用在:檢索,替換,爬蟲,論文查重等領域。實例化正則表達式對象字面量var pattern = /正則表達式/標記var
  • js正則表達式入門
    1、什么正則表達式正則表達式(regular expression)描述了一種字符串匹配的模式,可以用來檢查一個串是否含有某種子串、將匹配的子串做替換或者從某個串中取出符合某個條件的子串等。正則表達式並不是屬於某種語言的,它是一門獨立的語言,幾乎在所有的程式語言中都提供了相關支持(Javascript、PHP、Java、C++)以SQL語言為例:搜索功能精準匹配:$sql = 「select * from goods where title=』Nokia N95』」; //返回某個固定的結果模糊匹配:
  • 正則修煉手冊:從零開始學正則表達式
    從零開始學正則表達式正則表達式,又稱規則表達式。正則表達式通常被用來檢索、替換那些符合某個模式(規則)的文本。正則表達式(regular expression)描述了一種字符串匹配的模式(pattern),可以用來檢查一個串是否含有某種子串、將匹配的子串替換或者從某個串中取出符合某個條件的子串等。正則表達式通用於主流程式語言,應用廣泛,是新手小白程式設計師晉級的必過門檻。為何需要正則表達式?
  • 給JAVA程式設計師的正則表達式一課
    「不會正則表達式,就算寫遍代碼也嘛不是」。說到正則表達式,可能動態語言的碼農Perl,Python,JS甚至是Golang的開發人員可能都熟悉。對Java碼農來說,可能CURD手到擒來,Spring Stuts Hibernat耳聞能詳,但是說到Regex RE模式,可能熟練的少。那麼,今天蟲蟲就來給廣大Java碼農來補補正則的課。
  • Python正則表達式急速入門
    正則表達式在程序開發中會經常用到,比如數據(格式)驗證、替換字符內容以及提取字符串內容等等情況都會用到,但是目前許多開發人員對於正則表達式只是處於了解或者是基本會用的階段。一旦遇到大批量使用正則表達式的情況(例如網絡爬蟲)可以說基本上就抓瞎了。這篇文章我將帶領大家利用 Python 來學習一下正則表達式。
  • Java的正則表達式和捕獲組
    正則表達式定義了字符串的模式。正則表達式可以用來搜索、編輯或處理文本。正則表達式並不僅限於某一種語言,在Java、JavaScript等語言都存在,但是在每種語言中有細微的差別。Java正則表達式正則表達式實例一個字符串其實就是一個簡單的正則表達式,例如 Hello World正則表達式匹配 "Hello World" 字符串。.