C#正則表達式概述
以下是壹些常用的正則表達式。如果覺得有用,請收藏。
只能輸入數字:“[0-9] * $”。
只能輸入n位數字:“\ d {n} $”。
您只能輸入至少n個數字:“\ d {n,} $”。
只能輸入m~n位數字:。《^\d{m,n}$》
只能輸入以零和非零開頭的數字:“(0 | [1-9] [0-9] *) $”。
只能輸入兩位小數的正實數:“[0-9]+(。[0-9] {2})?$"。
只能輸入小數位為1~3的正實數:“[0-9]+(。[0-9] {1,3})?$"。
只能輸入非零正整數:" \+?[1-9][0-9]*$"。
只能輸入非零的負整數:" \-[1-9] [] 0-9" * $。
只能輸入長度為3的字符:"。{3} $".
只能輸入由26個英文字母組成的字符串:“[a-za-z]+$”。
只能輸入由26個大寫英文字母組成的字符串:“[a-z]+$”。
您只能輸入由26個小寫英文字母組成的字符串:“[a-z]+$”。
只能輸入由數字和26個英文字母組成的字符串:“[a-za-z0-9]+$”。
您只能輸入由數字、26個英文字母或下劃線組成的字符串:“\ w+$”。
驗證用戶密碼:“[a-za-z] \ w {5,17} $”正確格式為:以字母開頭,長度在6到18之間,只能包含字符、數字和下劃線。
請驗證它是否包含% &;',;=?$ \ "和其他字符:"[%& ',;=?$\x22]+" .
只能輸入漢字:"[\ U4E00-\ U9FA5] {0,} $ "
驗證電子郵件地址:“\ w+([-+。] \ w+) * @ \ w+([-。] \ w+) * \。\ w+([-。] \ w+) * $ "。
驗證interneturl:" "
s=s.replace(/(。*\/){0,}([^\.]+).*/ig," $2 ")
警報
匹配雙字節字符(包括漢字):[\ x00-\ xff]
應用:計算壹個字符串的長度(壹個雙字節字符長度米2,ASCII字符米1)。
string . prototype . len = function(){返回this.replace([^\x00-\xff]/g,"aa").長度;}
匹配空行的正則表達式:\n[\s| ]*\r
匹配HTML標記的正則表達式:/
匹配前導空格和尾隨空格的正則表達式:(\ s *) | (\ s * $)
String.prototype.trim =函數()
{
返回this.replace(/(^\s*)|(\s*$)/g,“”;
}
使用正則表達式分解和轉換IP地址;
下面是壹個Javascript程序,使用正則表達式匹配IP地址,並將IP地址轉換成相應的數值:
功能IP2V(ip)
{
Re =/(\ d+) \。(\ d+) \。(\ d+) \。(\ d+)/g//匹配IP地址的正則表達式。
if(重新測試(ip))
{
返回RegExp。$1*Math.pow(255,3))+RegExp。$2*Math.pow(255,2))+RegExp。$ 3 * 255+正則表達式。$4*1
}
其他
{
拋出新錯誤(“不是有效的IP地址!”)
}
}
但是上面的程序不需要正則表達式,直接用split函數分解可能更簡單。該計劃如下:
var IP = " 10.100.20 . 168 "
ip=ip.split(" . ")
Alert("IP值為:"+(IP[0]* 255 * 255 * 255+IP[1]* 255 * 255+IP[2]* 255+IP[3]* 1))
象征性解釋:
角色描述
\將下壹個字符標記為特殊字符、原義字符、向後引用或八進制轉義字符。
例如,“n”匹配字符“n”。\n '匹配壹個換行符。序列“\ \”匹配“\”和“\(”匹配“(”。
匹配輸入字符串的起始位置。如果設置了RegExp對象的Multiline屬性,它也會匹配“\n”或“\r”之後的位置。
$匹配輸入字符串的結束位置。如果設置了RegExp對象的Multiline屬性,$也會匹配“\n”或“\r”之前的位置。
*匹配前壹個子表達式零次或多次。比如zo*可以匹配“z”和“zoo”。*相當於{0,}。
+匹配前壹個子表達式壹次或多次。比如‘zo+’可以匹配‘zo’和‘zoo’,但是不能匹配‘z’。+相當於{1,}。
匹配前壹個子表達式零次或壹次。比如“做(es)?”可以在“do”或“does”中搭配“do”。?相當於{0,1}。
{n} n是壹個非負整數。匹配確定的n次。例如,“o{2}”不能匹配“Bob”中的“o”,但可以匹配“food”中的兩個“o”。
{n,} n為非負整數。至少匹配n次。比如' o{2,} '不能匹配' Bob '中的' o ',但可以匹配' foooood '中的所有o。O{1,} '相當於' o+'。O{0,} '等效於“o*”。
{n,m} m和n為非負整數,其中n
當字符緊跟在任何其他限定符(*、+、?,{n},{n,},{n,m}),匹配模式不貪心。非貪婪模式盡可能少地匹配搜索到的字符串,而默認貪婪模式盡可能多地匹配搜索到的字符串。例如,對於字符串“oooo”,“o+?”將匹配單個“o”,“o+”將匹配所有“o”。
。匹配除“\n”以外的任何單個字符。要匹配包括' \n '在內的任何字符,請使用類似'[。\n]'。
(模式)匹配模式,得到匹配。使用VBScript中的matches集合和JScript中的$0…$9屬性,可以從生成的Matches集合中獲得獲得的匹配。若要匹配括號字符,請使用“\(”或“\)”。
(?:pattern)匹配了模式但沒有獲得匹配結果,也就是說這是壹個未獲得的匹配,不會被存儲以備將來使用。當使用“或”字符(|)來組合模式的各個部分時,這很有用。比如industr(?:y|ies)是比“industry|industries”更簡單的表達方式。
(?=pattern)正向預檢查,在任何字符串匹配模式的開頭匹配搜索字符串。這是壹個非獲取匹配,即不需要獲取該匹配供以後使用。比如Windows(?=95|98|NT|2000)'可以匹配“Windows 2000”中的“Windows”,但不能匹配“Windows 3.1”中的“Windows”。預搜索不消耗字符,即匹配發生後,緊接著上壹個匹配開始搜索下壹個匹配,而不是從包含預搜索的字符後開始。
(?!Pattern)否定預檢查,在任何與模式不匹配的字符串的開頭匹配搜索字符串。這是壹個非獲取匹配,即不需要獲取該匹配供以後使用。比如Windows(?!95|98|NT|2000)'可以匹配“Windows 3.1”中的“Windows”,但不能匹配“Windows 2000”中的“Windows”。預搜索不消耗字符,即匹配發生後,緊接著上壹個匹配開始搜索下壹個匹配,而不是從包含預搜索的字符後開始。
X|y匹配x或y。例如,“z|food”可以匹配“z”或“food”。(z|f)ood '匹配“縮放”或“食物”。
[xyz]字符集。匹配任何包含的字符。例如,'[abc]'可以匹配' plain '中的' a '。
[XYZ]壹組反面人物。匹配任何未包含的字符。例如,“[ABC]”可以匹配“plain”中的“p”。
[a-z]字符範圍。匹配指定範圍內的任何字符。例如,'[a-z]'可以匹配' a '到' z '範圍內的任何小寫字母字符。
[a-z]負字符範圍。匹配不在指定範圍內的任何字符。例如,'[a-z]'可以匹配不在' a '到' z '範圍內的任何字符。
\b匹配單詞邊界,即單詞和空格之間的位置。例如,' er\b '可以與' never '中的' er '匹配,但不能與' verb '中的' er '匹配。
\B匹配非單詞邊界。“Er\B”可以與“動詞”中的“Er”搭配,但不能與“never”中的“er”搭配。
\cx匹配由x表示的控制字符,例如,\cM匹配Control-M或回車。x的值必須是a-z或A-Z中的壹個。否則,將c視為其原始含義中的“c”字符。
\d匹配壹個數字字符。相當於[0-9]。
\D匹配壹個非數字字符。相當於[0-9]。
\f匹配分頁符。相當於\x0c和\cL。
\n匹配壹個換行符。相當於\和\cJ。
\r匹配回車。相當於\x0d和\cM。
\s匹配任何空白字符,包括空格、制表符、分頁符等。相當於[\f\n\r\t\v]。
\S匹配任何非空白字符。相當於[\ f \ n \ r \ t \ v]。
\ t匹配選項卡。相當於\x09和\cI。
\v匹配垂直制表符。相當於\x0b和\cK。
\w匹配任何單詞字符,包括下劃線。相當於“[A-Za-z0-9_]”。
\W匹配任何非單詞字符。相當於“[a-za-z0-9 _]”。
\xn匹配n,其中n是十六進制轉義值。十六進制轉義值必須是某個兩位數的字長。例如,“\x41”匹配“a”。\x041 '等效於' \ x04 ' &;"1"。ASCII編碼可以用在正則表達式中。。
\num匹配num,其中num是正整數。對獲得的匹配的引用。比如說,'(。)1 '匹配兩個連續的相同字符。
\n標識八進制轉義值或向後引用。如果之前至少獲得了n個子表達式,則n是向後引用。否則,如果n是壹個八進制數(0-7),那麽n就是壹個八進制轉義值。
\nm標識八進制轉義值或向後引用。如果在nm之前至少有nm個子表達式,則nm是向後引用。如果在\nm之前至少有n次采集,則n是壹個後向引用,後面跟壹個m字。如果不滿足上述條件,並且n和m都是八進制數(0-7),則\nm將與八進制轉義值nm匹配。
\nml如果n是八進制數(0-3),並且m和l都是八進制數(0-7),則匹配八進制轉義值nml。
\ n匹配n,其中n是由四個十六進制數字表示的Unicode字符。例如\u00A9匹配版權符號(?)。