精品秘无码一区二区三区老师-精品秘一区二三区免费雷安-精品蜜桃秘一区二区三区-精品蜜桃秘一区二区三区粉嫩-精品蜜桃一区二区三区-精品蜜臀国产aⅴ一区二区三区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C#正則表達式快速入門

admin
2024年12月15日 15:11 本文熱度 554

前言

正則表達式(Regular Expression)是一個強大的文本處理工具,主要用于字符串的搜索、替換、驗證和分割等操作。通過定義特定的模式,正則表達式可以高效地匹配、查找或替換符合該模式的文本內(nèi)容。今天大姚將和大家一起來快速了解學(xué)習(xí)正則表達式,并且在C#中快速應(yīng)用。

正則表達式的優(yōu)勢

與傳統(tǒng)方法相比,正則表達式在處理字符串時具有以下顯著優(yōu)勢:

  • 靈活性:正則表達式提供了極高的靈活性,能夠匹配復(fù)雜的文本模式。
  • 高效性:對于大量的文本數(shù)據(jù),正則表達式提供了一種快速篩選和處理的方法。
  • 廣泛應(yīng)用:幾乎所有的編程語言都支持正則表達式,使得它在跨平臺應(yīng)用中非常有用。

注意事項

  • 正則表達式雖然強大,但是在處理復(fù)雜模式或大數(shù)據(jù)量時可能會比較耗時。因此,在性能敏感的場合要謹慎使用。
  • 復(fù)雜的正則表達式可能難以理解和維護。建議在使用時添加必要的注釋,并盡量將復(fù)雜的模式拆分成多個簡單的部分。

常用元字符

元字符是正則表達式中具有特殊意義的字符,以下是一些常用的元字符及其作用:

  • . : 匹配除換行符外的任何單個字符。
  • - :定義一個范圍(例如[A-Z])。
  • ^ : 匹配字符串的開始。
  • $ : 匹配字符串的結(jié)束。
  • * : 匹配前面的子表達式零次或多次。
  • + : 匹配前面的子表達式一次或多次。
  • ? : 匹配前面的子表達式零次或一次。
  • [] : 匹配括號內(nèi)的任意一個字符。
  • | : 匹配左右任意一個表達式(或操作)。
  • \ : 將下一個字符標記為一個特殊字符、或一個原義字符、或一個 向后引用、或一個八進制轉(zhuǎn)義符。?

驗證郵箱地址

        /// <summary>
        /// 驗證郵箱地址
        /// </summary>
        public static void VerifyEmailAddress()
        {
            string email = "edwin.doe@qq.com";
            string pattern = @"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$";
            var regex = new Regex(pattern);
            bool isValid = regex.IsMatch(email);
            Console.WriteLine($"{email} is valid email address: {isValid}");
        }

驗證手機號碼

        /// <summary>
        /// 驗證手機號碼
        /// </summary>
        public static void VerifyMobilePhone()
        {
            string mobile = "13812345678";
            string pattern = @"^1[3-9]\d{9}$";
            var regex = new Regex(pattern);
            bool isValid = regex.IsMatch(mobile);
            Console.WriteLine($"{mobile} is valid mobile phone number: {isValid}");
        }

提取URL

        /// <summary>
        /// 提取URL
        /// </summary>
        public static void ExtractUrl()
        {
            string url = "https://github.com/YSGStudyHards/DotNetGuide";
            string pattern = @"^https?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+$";
            var regex = new Regex(pattern);
            Match match = regex.Match(url);
            if (match.Success)
            {
                Console.WriteLine($"Found URL: {match.Value}"); //Output:https://github.com/YSGStudyHards/DotNetGuide
            }
            else
            {
                Console.WriteLine("No URL found.");
            }
        }

替換文本

        /// <summary>
        /// 替換文本
        /// </summary>
        public static void ReplaceText()
        {
            string input = "The date is 2024/12/16.";
            string pattern = @"(\d{4})/(\d{2})/(\d{2})";
            string replacement = "$1-$2-$3";
            var regex = new Regex(pattern);
            string result = regex.Replace(input, replacement);
            Console.WriteLine(result);//Output:The date is 2024-12-16.
        }

分割字符串

        /// <summary>
        /// 分割字符串
        /// </summary>
        public static void SplitString()
        {
            string pattern = @"[;,]";
            string input = "apple;banana,orange;grape";
            var regex = new Regex(pattern);
            string[] substrings = regex.Split(input);
            foreach (string substring in substrings)
            {
                Console.WriteLine(substring);
                //Output:
                //apple
                //banana
                //orange
                //grape
            }
        }

C#正則性能提升技巧

使用編譯選項

使用 RegexOptions.Compiled 選項可以提高正則表達式的執(zhí)行性能。此選項會在運行時編譯正則表達式,從而加快匹配速度。

string pattern = @"(\d{4})/(\d{2})/(\d{2})";
Regex regex = new Regex(pattern, RegexOptions.Compiled);  

避免過度回溯

復(fù)雜的正則表達式可能會導(dǎo)致大量的回溯,從而增加匹配時間。通過優(yōu)化正則表達式,減少不必要的回溯,可以提高性能。例如,盡量避免使用過多的重復(fù)限定符(如 *+?),并使用非貪婪匹配(*?+???)來減少回溯。

// 貪婪匹配  
string pattern = @"<.*>";  
  
// 非貪婪匹配  
string pattern = @"<.*?>";  

合理設(shè)置超時時間

為了防止正則表達式在極端情況下耗費過多的時間,可以設(shè)置匹配操作的超時時間。

string pattern = @"(\d{4})/(\d{2})/(\d{2})";
TimeSpan timeout = TimeSpan.FromSeconds(1); // 設(shè)置1秒的超時時間  
Regex regex = new Regex(pattern, RegexOptions.None, timeout);  

在線正則表達式大全

對于我們而言正則表達式用的不是很頻繁,記一下等到用的時候又忘記了。所以我們主要了解一下常用元字符和基本用法,當遇到需要做正則表達式拼接的時候可以到網(wǎng)上查閱現(xiàn)有資料,這里大姚分享一個比較全面的在線正則表達式大全。

  • https://any-rule.vercel.app

該文章在 2024/12/16 9:57:48 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 亚洲国产视频中文字幕 | 国产成人久久婷婷精品流白浆 | 亚洲一区二区免费看 | 国产又爽又猛又粗的A片 | 丁香五月综合缴情电影 | 九九久久久久久久久久 | 熟女国产精 | 亚洲第一永久免费网站国内 | 国产美女做爰A片免费 | 精品欧美成人高清在线观看 | 丁香五月天综合缴情网 | 午夜av免费ā片在线观看 | 无码精品人妻一区二区三区影院 | 亚洲国产精品自在在线 | 亚州巨乳成人片 | 国产全肉乱妇杂乱视频 | 国产麻豆大豆行情 | 一级无码日韩毛片 | 精品无码中文字幕 | 亚洲一区日韩高清中文字幕亚洲 | 综合永久入口 | 精品人伦一区二区三区潘金莲 | 亚洲精品6久久久久中文字幕 | 日本又色又爽又黄的A片视频免费 | 99国精品午夜福利视频不卡 | 中文字幕乱码亚洲无线三区网盘在线观看 | 国产亚洲精品久久孕妇呦呦你懂 | 国产在线精品一区二区三区 | 午夜久久久久久禁播电影 | 欧美黄黄黄AAA片片 欧美黄色免费网址 | 亚洲国产另类无码日韩 | 成午夜福利人试看120秒 | 狂猛欧美激情性xxxx大豆行情 | 一级人做人a爰免费视频 | 国产人与动人物 | 久久精品国产网红主播 | 亚洲熟女片嫩草影院 | 国产成人精品亚洲av无人区一区 | 人妖和人妖互交性xxxx视频 | 亚洲午夜久久久久影院 | 中文字幕人妻少妇引诱隔壁 |