溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C# 正則表達(dá)式

發(fā)布時(shí)間:2020-07-15 16:41:15 來源:網(wǎng)絡(luò) 閱讀:411 作者:guwei4037 欄目:編程語言

正則表達(dá)式是個(gè)非常重要的工具,最早在Perl等腳本語言中廣泛使用。它語法簡單,但功能強(qiáng)大,可以從大量的字符串當(dāng)中快速的篩選出自己想要的內(nèi)容。
下面列舉一些常用的基本的正則表達(dá)式,以備查詢使用。
一、基本的正則表達(dá)式
1、"^\d+$" //非負(fù)整數(shù)(正整數(shù) + 0)
2、"^[0-9]*[1-9][0-9]*$" //正整數(shù)
3、"^((-\d+)|(0+))$" //非正整數(shù)(負(fù)整數(shù) + 0)
4、"^-[0-9]*[1-9][0-9]*$" //負(fù)整數(shù)
5、"^-?\d+$" //整數(shù)
6、"^\d+(\.\d+)?$" //非負(fù)浮點(diǎn)數(shù)(正浮點(diǎn)數(shù) + 0)
7、"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮點(diǎn)數(shù)
8、"^((-\d+(\.\d+)?)|(0+(\.0+)?))$" //非正浮點(diǎn)數(shù)(負(fù)浮點(diǎn)數(shù) + 0)
9、"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //負(fù)浮點(diǎn)數(shù)
10、"^(-?\d+)(\.\d+)?$" //浮點(diǎn)數(shù)
11、"^[A-Za-z]+$" //由26個(gè)英文字母組成的字符串
12、"^[A-Z]+$" //由26個(gè)英文字母的大寫組成的字符串
13、"^[a-z]+$" //由26個(gè)英文字母的小寫組成的字符串
14、"^[A-Za-z0-9]+$" //由數(shù)字和26個(gè)英文字母組成的字符串
15、"^\w+$" //由數(shù)字、26個(gè)英文字母或者下劃線組成的字符串
16、"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$" //email地址
17、"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$" //url
18、/^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/ // 年-月-日
19、/^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/ // 月/日/年
20、"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$" //Emil
21、"(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?" //電話號碼
22、"^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$" //IP地址
23、YYYY-MM-DD基本上把閏年和2月等的情況都考慮進(jìn)去了
^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$
二、C#中的一些例子:
1、正則分割字符串

string test = "XXXX|YYY|ZZZZ";
string[] result = Regex.Split(test, "[|]");//按照|對原字符串進(jìn)行分割  
result.ToList().ForEach(x => Console.WriteLine(x));//XXXX,YYY,ZZZZ

2、看超鏈接是否匹配  

string str = "1.asp?id=100";
Regex regex = new Regex(@"1.asp\?id\=(\d+)", RegexOptions.IgnoreCase);
Console.WriteLine(regex.IsMatch(str));//True

3、篩選內(nèi)容

Match m = Regex.Match(@"<span class='blocking-flag'>緊急</span>", @"(?is)(?<=<span[^>]+>).+?(?=</span>)");
Console.WriteLine(m.Value);//緊急

4、內(nèi)容替換

string result = Regex.Replace("數(shù)碼產(chǎn)品(15),MP3(15),日常用品(12),IT產(chǎn)品(12)", @"\(\d+\)", "");
Console.WriteLine(result);//數(shù)碼產(chǎn)品,MP3,日常用品,IT產(chǎn)品

5、去除空格

string result = " 我  的  中 國     心 ";
result = string.Join("", result.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries));//我的中國心
result = Regex.Replace(result, @"[\s{1,}]{1,}", "");//我的中國心

6、請求網(wǎng)址獲得鏈接

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("xxx");//xxx為請求的url
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream stream = response.GetResponseStream();
StreamReader reader = new StreamReader(stream, Encoding.Default);
string block = reader.ReadToEnd();//獲取返回的html
MatchCollection matches = Regex.Matches(block,@"(?i)<a[^>]*href=([""'])?(?<href>[^'""]+)\1[^>]*>");
foreach (Match match in matches)
{
      //match; 獲得每個(gè)諸如<a href='www.baidu.com'>百度一下</a>
      //match.Groups["href"].Value; 獲得每個(gè)諸如www.baidu.com
}

7、將字符串的中文部分替換

Regex.Replace("1354444444張,1434324李,王028-4433434", @"[\u4e00-\u9fa5]", "");

至于為什么是\u4e00到\u9fa5,參見:http://zh.wikibooks.org/wiki/Unicode/4000-4FFF。

8、×××格式驗(yàn)證

public static bool ValidateIdentitycard(string identityCard) 
{ 
    return Regex.IsMatch(identityCard, @"^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$"); 
}

最后附一些相關(guān)鏈接:

正則表達(dá)式語言-快速參考 http://msdn.microsoft.com/zh-cn/library/vstudio/az24scfc(v=vs.110).aspx

正則表達(dá)式語法 http://msdn.microsoft.com/zh-cn/library/ae5bf541(v=vs.100).aspx


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI