輕鬆學習正規表示式

2021-09-17 20:02:44 字數 1943 閱讀 4802

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

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

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

using system.text.regularexpressions;
第二步就是用指定的正則式構建乙個正規表示式物件,下面的正則式是用來搜尋長度為10的a-z的英文本母:

regex obj = new regex(「[a-z]」);
最後,根據正則式在指定資料中檢索匹配項,如果匹配ismatch方法就會返回true。

messagebox.show(obj.ismatch(「shivkoirala」).tostring());
3個重要的正則式命令

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

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

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

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

檢查使用者是否輸入了shivkoirala?

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

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

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

[a-g]
我如何在匹配像91230456, 01237648那樣的固定8位數?

^[0-9]$
如何驗證最小長度為3最大長度為7的數字,如:123, 1274667, 87654?

^[0-9]$
如何驗證像lji1020那樣的發票編號,前3個是字母剩餘為8位長度的數字?

前三個是字母:

^[a-z]
後面是8位長度的數字:

[0-9]
所以整個表示式為:

^[a-z][0-9]$
驗證像inv190203 或 inv820830那樣的前3位是不區分大小寫的英文本母,剩餘8位是數字

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

完整的正則式如下:

輕鬆學習正規表示式

英文原文 learn regular expressions regex with ease 謝謝合作!譯文如下 開篇,談談本文的主要內容 編寫驗證規則最流行和最簡單的方法就是正規表示式了,但唯一的乙個問題是正規表示式的語法太隱晦了,讓人蛋疼無比。很多開發者為了在專案中應用複雜的驗證,經常要使用一些...

輕鬆學習正規表示式

正規表示式 regular expression 描述了一種字串匹配的模式,可以用來檢查乙個串是否含有某種子串 將匹配的子串做替換或者從某個串中取出符合某個條件的子串等。列目錄時,dir txt或ls txt中的 txt就不是乙個正規表示式,因為這裡 與正則式的 的含義是不同的。正規表示式是由普通字...

輕鬆學正規表示式

正規表示式廣泛用於查詢 校驗,無論使用什麼語言開發,或者是日常工作中使用編輯器,掌握正規表示式都能帶來效率上的收穫。我在別人的教程中看過一句話 如果你覺得正規表示式很簡單,要麼你是乙個天才,要麼你不是地球人。不要被嚇到,一旦理解正則後,其實也並不會那麼難,而且它給我們帶來的好處是毋庸置疑的。本文盡量...