微軟的正規表示式教程(一) 正規表示式簡介

2021-04-06 11:42:19 字數 1267 閱讀 1790

微軟的正規表示式教程(一):正規表示式簡介

認識正規表示式

如果原來沒有使用過正規表示式,那麼可能對這個術語和概念會不太熟悉。不過,它們並不是您想象的那麼新奇。

請回想一下在硬碟上是如何查詢檔案的。您肯定會使用 ? 和 * 字元來幫助查詢您正尋找的檔案。? 字元匹配檔名中的單個字元,而 * 則匹配乙個或多個字元。乙個如 'data?.dat' 的模式可以找到下述檔案:

data1.dat

data2.dat

datax.dat

datan.dat

如果使用 * 字元代替 ? 字元,則將擴大找到的檔案數量。'data*.dat' 可以匹配下述所有檔名:

data.dat

data1.dat

data2.dat

data12.dat

datax.dat

dataxyz.dat

儘管這種搜尋檔案的方法肯定很有用,但也十分有限。? 和 * 萬用字元的有限能力可以使你對正規表示式能做什麼有乙個概念,不過正規表示式的功能更強大,也更靈活。

正規表示式的「祖先」可以一直上溯至對人類神經系統如何工作的早期研究。warren mcculloch 和 walter pitts 這兩位神經生理學家研究出一種數學方式來描述這些神經網路。

1956 年, 一位叫 stephen kleene 的美國數學家在 mcculloch 和 pitts 早期工作的基礎上,發表了一篇標題為「神經網事件的表示法」的**,引入了正規表示式的概念。正規表示式就是用來描述他稱為「正則集的代數」的表示式,因此採用「正規表示式」這個術語。

隨後,發現可以將這一工作應用於使用ken thompson 的計算搜尋演算法的一些早期研究,ken thompson是unix 的主要發明人。正規表示式的第乙個實用應用程式就是 unix 中的qed 編輯器。

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

在典型的搜尋和替換操作中,必須提供要查詢的確切文字。這種技術對於靜態文字中的簡單搜尋和替換任務可能足夠了,但是由於它缺乏靈活性,因此在搜尋動態文字時就有困難了,甚至是不可能的。

使用正規表示式,就可以:

例如,如果需要搜尋整個 web 站點來刪除某些過時的材料並替換某些html 格式化標記,則可以使用正規表示式對每個檔案進行測試,看在該檔案中是否存在所要查詢的材料或 html 格式化標記。用這個方法,就可以將受影響的檔案範圍縮小到包含要刪除或更改的材料的那些檔案。然後可以使用正規表示式來刪除過時的材料,最後,可以再次使用正規表示式來查詢並替換那些需要替換的標記。

一 正規表示式基礎

正規表示式是一種用來匹配字串的強有力的 設計思想是用一種描述性的語言來給字串定義乙個規則,凡是符合規則的字串,就認為它 匹配 否則就不匹配。行定位符用來描述字串的邊界。表示行的開始,表示行的結束。例如 若要匹配以am開頭的字串,則是 am 若要匹配以am結尾的字串,則是am 其中 放在方括號裡,表示...

mysql學習(一)正規表示式

mysql可以通過 like 來進行模糊匹配 mysql 同樣也支援其他正規表示式的匹配,mysql中使用 regexp 操作符來進行正規表示式匹配 模式描述 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束位置。...

《Linux Shell》之一 正規表示式

bash的萬用字元 1.匹配單個字元,ls l aa?b.txt 2.匹配任意個字元 ls l aa b.txt 3.匹配中括號中的任意乙個字元 ls l aa trh b.txt,ls l aa a d b.txt 4.一組表示式,用逗號,隔開,只要滿足其中一條即可 ls l ls a 5.在中使...