日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

轻松学习正则表达式

發布時間:2024/6/21 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 轻松学习正则表达式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

裝載自:http://www.cnblogs.com/sxwgf/archive/2011/11/17/2252076.html

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

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

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

using System.Text.RegularExpressions;


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

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

?

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

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

?

3個重要的正則式命令

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

B

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

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

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

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

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

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

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

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

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

檢查用戶是否輸入了shivkoirala?

shivkoirala


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

[a-g]

?

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

[a-g]{3}

?

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

[a-g]{1,3}

?

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

^[0-9]{8}$


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

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

?

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

前三個是字母:

^[a-z]{3}

?

后面是8位長度的數字:

[0-9]{8}

?

所以整個表達式為:

^[a-z]{3}[0-9]{7}$

?

驗證像INV190203 或 inv820830那樣的前3位是不區分大小寫的英文字母,剩余8位是數字

在前面的表達式中只能匹配前3個是小寫英文字母的發票編號,如果我們輸入大寫字母那就不能匹配了。所以為了確保前3個字母是不區分大小寫的,我們就要用表達式^[a-zA-Z]{3}。

完整的正則式如下:

^[a-zA-Z]{3}[0-9]{7}$

?

我們可以驗證簡單的網址URL格式嗎?

第一步:檢查是否存在www:

^www.

?

第二步:域名必須是長度在1-15的英文字母:

. [a-z]{1,15}

?

第三部:以.com或者.org結束:

. (com|org)$

?

完整的表達式如下:

^www[.][a-z]{1,15}[.](com|org)$

?

讓我們在來看看BCD(其實也就是上面說的3條基本語法)如何驗證email格式

第一步:email開始是長度在1-10的英文字母,最后跟一個"@":

^[a-zA-Z0-9]{1,10}@

?

第二步:@后面是長度在1-10的英文字母,后面跟一個".":

[a-zA-Z]{1,10}.

?

第三步:最后以.com或.org結束:

.(com|org)$

?

最后完整的表達式如下:

^[a-zA-Z0-9]{1,10}@[a-zA-Z]{1,10}.(com|org)$

?

驗證值在0-25的數字:

^(([0-9])|([0-1][0-9])|([0-2][0-5]))$

?

驗證格式為MM/DD/YYYY, YYYY/MM/DD and DD/MM/YYYY的日期:

步驟

正則式

描述說明

先來檢查 DD. 首先DD的長度為1-29 ( 2月份) , 1-30 (月小) , 1-31 (月大) .

所以 DD 就是 1-9 或 01-09

[1-9]|0[1-9]

允許用戶輸入1-9或者01-09.

再為DD添加匹配10-19

[1-9]|1[0-9]

允許用戶輸入01-19.

再為DD添加匹配20-29

[1-9]|1[0-9]|2[0-9]

允許用戶輸入01-29.

i再為DD添加匹配30-31

[1-9]|1[0-9]|2[0-9]|3[0-1]

最后用戶可以輸入01-31.

再來匹配日期間的分隔符"/","-"

[/ . -]

允許用戶輸入日期分隔符.

MM也是類似的操作

[1-9]|0[1-9]|1[0-2]

讓用戶輸入月份值01-12.

最后就是YY的操作

1[9][0-9][0-9]|2[0][0-9][0-9]

允許用戶輸入年份1900-2099.

最后DD/MM/YYYY格式的日期的正則表達式為:

^([1-9]|0[1-9]|1[0-9]|2[0-9]|3[0-1])[- / .]([1-9]|0[1-9]|1[0-2])[- / .](1[9][0-9][0-9]|2[0][0-9][0-9])$

?

MM/DD/YYYY格式的日期:

^([1-9]|0[1-9]|1[0-2])[- / .]([1-9]|0[1-9]|1[0-9]|2[0-9]|3[0-1])[- / .](1[9][0-9][0-9]|2[0][0-9][0-9])$

?

YYYY/MM/DD格式的日期:

^(1[9][0-9][0-9]|2[0][0-9][0-9])[- / .]([1-9]|0[1-9]|1[0-2])[- / .]([1-9]|0[1-9]|1[0-9]|2[0-9]|3[0-1])$

?

快捷命令

你也可以用以下的快捷命令來簡化你的正則表達式

實際命令快捷命令
[0-9]\d
[a-z][0-9][_]\w
0次或多次發生*
至少一次發生+
0次或1次發生?

轉載于:https://www.cnblogs.com/yixi978/p/5674315.html

總結

以上是生活随笔為你收集整理的轻松学习正则表达式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。