1. 程式人生 > >簡單理解正則表示式

簡單理解正則表示式

編寫驗證規則最流行和最簡單的方法就是正則表示式了,但唯一的一個問題是正則表示式的語法太隱晦了,讓人蛋疼無比。很多開發者為了在專案中應用複雜的驗證,經常要使用一些小抄來記住正則式的複雜語法和各種常用命令。

在這篇文章中,我將試圖讓大家明白什麼是正則表示式,以及如何更輕鬆地學習正則表示式。

\

也許你是初學者,那以防萬一,我先來講講什麼是正則表示式吧:

正則表示式可以幫助我們更好的描述複雜的文字格式。一旦你描述清楚了這些格式,那你就可以利用它們對文字資料進行檢索、替換、提取和修改操作。

下面有一個正則表示式的簡單例子。第一步先要引入有關正則式的名稱空間:

1 using System.Text.RegularExpressions;

第二步就是用指定的正則式構建一個正則表示式物件,下面的正則式是用來搜尋長度為10的a-z的英文字母:


1 Regex obj = new Regex(“[a-z]{10}”);

最後,根據正則式在指定資料中檢索匹配項,如果匹配IsMatch方法就會返回true。


1 MessageBox.Show(obj.IsMatch(“shivkoirala”).ToString());

3個重要的正則式命令

記住正則語法最好的辦法就是記住這三樣東西:Bracket(括號), caret(插入符號)和Dollars(美元符號)。

\

B

在正則表示式中有3種類型的括號

方括號 “[“和花括號“{“ 。

方括號"["內是需要匹配的字元,花括號"{"內是指定匹配字元的數量。

圓括號“(“ 則是用來分組的。

C 插入符號 “^” 表示正則式的開始。
D 美元符號“$” 表示正則式的結束。

現在你知道上面的3個語法後,你就可以寫世界上任何一條驗證規則了。比如下面的例子就很好的說明了上面3條

正則語法是如何協調運作的。

\
             (譯者注:上圖有個錯誤,"()"應為"{}")

  • 上面的這條正則式只能匹配a-z的英文字母,同樣是在中括號中標明匹配範圍。
  • 花括號中則是標明匹配字串的最小長度和最大長度。
  • 最後為了讓表示式更規則,分別在開頭和結尾加上了插入符號"^"和美元符號"$"。

好了,現在我們就用上面的3條語法來實現一些正則表示式的驗證規則吧。

檢查使用者是否輸入了shivkoirala

1 shivkoirala

讓我們開始第一個驗證,輸入的字元在a-g之間?


1 [a-g]

輸入的字元在a-g之間並且長度為3?


1 [a-g]{3}

輸入的字元在a-g之間並且最大長度為3最小長度為1?


1 [a-g]{1,3}

我如何在匹配像91230456, 01237648那樣的固定8位數?


1 ^[0-9]{8}$

如何驗證最小長度為3最大長度為7的數字,如:123, 1274667, 87654

1 ^[0-9]{3,7}$

如何驗證像LJI1020那樣的發票編號,前3個是字母剩餘為8位長度的數字?

前三個是字母:

1

相關推薦

簡單理解表示式

編寫驗證規則最流行和最簡單的方法就是正則表示式了,但唯一的一個問題是正則表示式的語法太隱晦了,讓人蛋疼無比。很多開發者為了在專案中應用複雜的驗證,經常要使用一些小抄來記住正則式的複雜語法和各種常用命令。 在這篇文章中,我將試圖讓大家明白什麼是正則表示式,以及如何

深入理解表示式的環視

從Zjmainstay的深入理解正則表示式高階教程中擷取的一部分內容: 環視(斷言/零寬斷言) 環視,在不同的地方又稱之為零寬斷言,簡稱斷言。  用一句通俗的話解釋:  環視,就是先從全域性環顧一遍正則,(然後斷定結果,)再做進一步匹配處理。  斷言,就是先從全

簡單理解化。

1. 正則化的目的:防止過擬合! 2. 正則化的本質:約束(限制)要優化的引數。 關於第1點,過擬合指的是給定一堆資料,這堆資料帶有噪聲,利用模型去擬合這堆資料,可能會把噪聲資料也給擬合了,這點很致命,一方面會造成模型比較複雜(想想看,本來一次函式能夠擬合的資料,現在由於資料帶有噪聲,導致要

深入理解表示式

一 前言 對於正則表示式,相信很多人都知道,但是很多人的第一感覺就是難學,因為看第一眼時,覺得完全沒有規律可尋,而且全是一堆各種各樣的特殊符號,完全不知所云。 其實只是對正則不瞭解而以,瞭解了你就會發現,原來就這樣啊正則所用的相關字元其實不多,也不難記,更不難懂,唯一難的就是組合起來之後,可

Python中一些簡單表示式(爬蟲所需(.*?))

這篇部落格旨在介紹使用爬蟲時一些常用的正則表示式。 在之前,我一直都是一個談正則表示式色變的人。因為正則表示式實在是太多太多,想要記得除非是經常用,否則也很難完全掌握其中所有的內容。所以這些東西都是現用現查,然後要一個一個的搜尋,將自己所需要的進行查詢。所以學

簡單表示式——要注意lastIndex屬性

說明 這篇文章,主要和大家聊聊JavaScript中RegExp物件的屬性。 解釋 每個RegExp物件都包含5個屬性,source、global、ignoreCase、multiline、lastIndex。 source:是一個只讀的字串,包

表示式學習筆記(二)——簡單表示式

一、簡單的正則表示式 注意: 在使用正則表示式的時候,會發現幾乎所有的問題都有不止一種解決方法。 有的比較簡單,有的比較快速,有的相容性很好,有的功能更全,同一個問題往往會有多種解決方

javascript簡單表示式入門

內容來自百度前端學院javascript入門課程 基本的HTML: <textarea placeholder="請輸入字元並用不同符號分隔" rows="5" cols="20">

二十四、form 表單驗證+簡單註冊表示式

2.驗證正則表示式var email=/^\w{5,10}\@[0-9a-z]{2,5}\.[c,o,m]{3}$/;郵箱驗證碼:6位純數字驗證碼var id_e=/^\d{6}$/;密碼:字母/數字/英文符號(最短8位)var password=/^[0-9a-zA-Z.,;'/]{8,}$/;3.封裝驗證

簡單表示式

在java中,方法matches()是匹配字串的一個比較強大的方法,例如: “java is fun”.matches(“java.“);返回true。“ .*”這個正則表示式表示匹配java字串後面的內容。 常用的表示式及需要注意到的地方:

Pattern Matcher group 簡單例子表示式

多次使用了Matcher匹配後的group提取需要的內容。記錄一下非常簡單的demo。 至於正則表示式請參考其他資料,本程式碼片段使用了\d匹配數字 (\d+)表示匹配一個或多個數字。 https://docs.oracle.com/javase/7/doc

Python表示式簡單應用和示例演示

前一陣子小編給大家連續分享了十篇關於Python正則表示式基礎的文章,感興趣的小夥伴可以點選連結進去檢視。今天小編給大家分享的是Python正則表示式的簡單應用和示例演示,將前面學習的Python正則表示式做一個概括。 下面的栗子是用於提取高考日期,一般來說,我們填寫日期都會寫2018年6月7日,但

python第一篇:表示式的方法簡單歸納

首先先對一些常用的匹配模式進行一下介紹及互相認識一下,當然了可能它認識我,但我絕對還不認識它。。。 ******************************************** 元字元 【 . ^ $ * + ? {} [] \ | () 】 *************

iOS表示式簡單應用

想要了解基本語法的可以進入下面網站自行學習 自學地址Runoob 正則表示式在iOS的簡單應用 // 匹配小寫a開頭的字串 NSString * regex = @"^a.*"; NSPredicate *pred = [NSPredicate predicateWithForm

C#表示式簡單總結

C#: c#中驗證正則表示式的類為System.Text.RegularExpressions.Regex 簡單的匹配方法為IsMatch(4個過載方法) 正則表示式語法: 一、匹配單個字元 [ ]:從中選擇一個字元匹配 如:單詞字元([ae])、非單詞

關於表示式的相關理解

在我們工作中經常會遇到正則表示式的相關問題,這篇文章來詳細來介紹正則表示式的相關用法,希望對你有所啟發; 附上鍊接: http://tool.oschina.net/uploads/apidocs/jquery/regexp.html http://www.runoob.com/rege

表示式簡單運用(1)

  用Python從一篇文章中提取關鍵資訊,涉及到不少知識。其中正則表示式這方面的內容很重要,所以我簡單整理了下,方便以後的學習。   首先,正則表示式是什麼?   正則表示式,又稱規則表示式。(英語:Regular Expression,在程式碼中常簡寫為regex、regexp或RE),電腦科學的一個

day023表示式,re模組,簡單爬蟲和多頁面爬蟲(幹掉數字簽名證書驗證)

本節內容: 1、正則表示式 2、re模組的運用 3、簡單的爬蟲練習 一、正則表示式(Regular Expression) 正則表示式是對字串操作的⼀種邏輯公式. 我們⼀般使⽤正則表示式對字串進⾏匹配和過濾. 使⽤正則的優缺點: 優點: 靈活, 功能性強, 邏輯性強. 缺點: 上⼿難. ⼀旦上⼿, 會愛

python—【爬蟲】學習_2(表示式篇)3.re模組函式的深入理解

1. re.complie() 作用:如果需要重複地使用某個正則表示式,那麼你可以先將該正則表示式編譯成模式物件。complie()函式就幫助我們將正則表示式,編譯成為一個pattern物件。 2.re.search(pattern ,string) regex.search(strin

Java簡單表示式實現

前言:由於工作中涉及對正則的使用,所以簡單的整理一下Java中正則的使用,做一個自我檢討和筆記整理。 Java中校驗某個字串是否滿足某個規則,可以簡單到直接使用String類的matches方法。 例如: // 校驗手機號碼有效性 String regex = "^1[