正規表示式入門
正規表示式是基於樣式匹配的文字處理技術的關鍵所在。想要在編寫文字處理工具方面駕輕就熟,你就必須對正規表示式有一個基本的理解。正規表示式是一種用於文字匹配的形式小巧、具有高度針對性的程式語言。只依靠萬用字元技術,能夠匹配的文字範圍相當有限。這則攻略將對基礎的正規表示式進行講解。
4.2.1 預備知識
正規表示式是用於絕大多數文字處理工具的一種語言。因此你完全可以把在這裡學習到的技術應用到其他攻略中。[a-z0-9_]+@[a-z0-9]+.[a-z]+就是一個能夠匹配電子郵件地址的正規表示式。
它看起來是不是很古怪?別擔心,一旦你理解了相關的概念,它其實相當簡單。
4.2.2 實戰演練
本節將會讓你簡單瞭解一下正規表示式、POSIX字元類(POSIX character class)以及元字元(meta character)。
先來看一看正規表示式的基本組成部分,如表4-1所示。
POSIX字元類是一個形如 [:...:] 的特殊元序列(meta sequence),它可以用於匹配特定的字元範圍。POSIX字元類如表4-2所示。
元字元是一種Perl風格的正規表示式,只有一部分文字處理工具支援它,並不是所有的工具都支援表4-3中所列的字元,但是之前介紹的正規表示式和字元類都是被廣泛支援的。
4.2.3 工作原理 在4.2.2節中看到的表格是正規表示式的關鍵元素表。在表中挑選恰當的正規表示式,我們就能夠根據需要構建出適合的正規表示式來匹配文字。正規表示式是一種用於文字匹配的通用語言。因此我們在這則攻略中不會介紹任何工具,而是把這個任務放到本章的其他攻略中。
來看幾個文字匹配的例子。
為了匹配給定文字中的所有單詞,可以使用下面的正規表示式:
( ?[a-zA-Z]+ ?) “?”用於匹配單詞前後可能出現的空格。[a-zA-Z]+代表一個或多個字母(a~z和A~Z)。 為了匹配一個IP地址,可以使用下面的正規表示式:
[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3} 或者
[[:digit:]]{1,3}.[[:digit:]]{1,3}.[[:digit:]]{1,3}.[[:digit:]]{1,3} 我們知道IP地址通常的書寫形式是192.168.0.2,它是由點號分割的4個整數(每一個整數的取值範圍從0到255)。
[0-9]或[:digit:]匹配數字0~9。{1,3}匹配1到3個數字,.匹配"."。
4.2.4 補充內容 下面就看一看如何在正規表示式中指定某些字元的特殊含義。
處理特殊字元
正規表示式用$、^、.、*、+、{以及}等作為特殊字元。但是如果我們希望將這些字元作為非特殊字元(表示普通字面含義的字元)來使用的話,應該怎麼做呢?來看一個例子。
正規表示式:[a-z]*.[0-9]
那麼,它是什麼意思?
它可以匹配0個或多個a-z,接任意單個字元(.),再接[0-9]中的任意一個字元,所以它能夠匹配 abcdeO9。
它也可以理解成:匹配[a-z]中任意一個字元,接單個字元,再接單個字元.(點號),最後接一個數字,所以它能夠匹配x.8。
為了避免這種理解上的混亂,我們可以在字元前面放上一個“\”(這種做法稱為“對字元進行轉義”)。對於像 * 這種具有多種含義的字元,可以在前面加上“\”,使其具備或喪失某些特殊的含義。至於轉義後字元的意義是否具備特殊的含義,則取決於你所使用的工具。
相關文章
- JS正規表示式入門JS
- Regex 正規表示式入門
- 【記錄】正規表示式入門
- 正規表示式入門學習
- 正規表示式基礎入門
- 正規表示式從入門到入坑
- C++與正規表示式入門C++
- 瞎說系列之正規表示式入門
- 正規表示式快速入門(歸納版)
- 正規表示式系列之初級入門篇
- javascript快速入門11--正規表示式JavaScript
- 正規表示式30分鐘入門教程
- 深入理解正規表示式:從入門到精通
- C#快速入門教程(20)—— 字串與正規表示式C#字串
- JS正規表示式從入門到入土(5)—— 量詞JS
- 爬蟲入門系列(六):正規表示式完全指南(下)爬蟲
- 正規表示式
- re正規表示式庫的簡介、入門、使用方法
- JS正規表示式從入門到入土(10)—— 字串物件方法JS字串物件
- Linux系統程式設計(16)——正規表示式入門Linux程式設計
- 【正規表示式】常用的正規表示式(數字,漢字,字串,金額等的正規表示式)字串
- 【JavaScript】正規表示式JavaScript
- php –正規表示式PHP
- 正規表示式 教程
- 正規表示式 split()
- java正規表示式Java
- PHP正規表示式PHP
- javascript正規表示式JavaScript
- 【java】正規表示式Java
- 初探正規表示式
- [js]正規表示式JS
- js正規表示式JS
- javascript–正規表示式JavaScript
- ORACLE 正規表示式Oracle
- MySQL 正規表示式MySql
- oracle正規表示式Oracle
- js 正規表示式JS
- ultraedit正規表示式