.Net程式員應該掌握的正則表達式

来源:http://www.cnblogs.com/green-jcx/archive/2016/07/26/5707987.html
-Advertisement-
Play Games

Regular Expression Net程式員必然要掌握正則的核心內容:匹配、提取、替換、常用元字元。 正則表達式是用來進行文本處理的技術,是語言無關的,在幾乎所有語言中都有實現。 常用元字元 .:代表除了換行之外的任意字元,一個字元占位。 *:代表前面的子表達式出現0次或者多次。如果需要*代表 ...


Regular Expression

Net程式員必然要掌握正則的核心內容:匹配提取替換常用元字元

正則表達式是用來進行文本處理的技術,是語言無關的,在幾乎所有語言中都有實現。

 


 

常用元字元

.:代表除了換行之外的任意字元,一個字元占位。

 

*:代表前面的子表達式出現0次或者多次。如果需要*代表的子表達式是多個字元,就將多個字元用()包含。

 

+:代表前面的表達式出現1次或者多次。

 

?:代表前面的表達式出現0次或者出現1次。

 

{n}:代表前面的子表達式要出現n次。

 

^代表開始$代表結束

 

{n,m}:代表前面的子表達式最少出現n次,最多出現m次。

 

{n,}:說明前面的子表達式最少出現n次,最多沒有限制。

 

[]:輸入的內容必須是在括弧內有的一個字元。

 

():改變優先順序、分組。

 

\d:代表0-9的數字。

 

\D:代表非數字。

 

\w:代表0-9a-zA-Z_中文   (經過實例證明C#里\w包含中文,JavaScript里不包含中文

 

\W:代表其他特殊字元(除了0-9a-zA-Z_中文)

 

\s:代表看不到的字元,如:回車、空格、製表符。

 

\S:代表所有可見字元

 


 

 

正則表達式進行匹配的原則:

1.(有沒有)只關註是否存在,而不關註它的位置,也就意味著只需要能夠匹配其中一個就可以 。

2.貪婪模式:如果找到了能匹配的字元,那麼他還繼續往下匹配儘可能多的字元,只到最後

 


 

 

.net中的正則表達式

正則表達式在.net中就是用字元串來表示,這個字元串格式比較特殊,無論多麼特殊,在C#語言看來都是普通的字元出,具體什麼含義由Regex類內部進行語法分析。

常用的4種情況:

  1. 判斷是否匹配(是否有):Regex.IsMatch("字元串","正則表達式");
  2. 字元串提取:Regex.Match("字元串","要提取的字元出的正則表達式"); ——只能提取一個(提取一次)。
  3. 字元串提取(迴圈提取所有):Regex.Matches(),可以提取所有匹配的字元串。
  4. 字元串替換:Regex.Replace("字元串","正則","替換內容");

 

 

提取只有一個匹配項的字元串,進行分組,提取。

        string str = "[email protected]";

                Match match = Regex.Match(str, @"^(\w+)[@](\w+)[.](\w+)$");

                if (match.Success) //匹配成功

                {

                    Console.WriteLine(match.Groups[0].Value);  //結果:[email protected]

                    Console.WriteLine(match.Groups[1].Value);  //結果:tiantianjcx

                    Console.WriteLine(match.Groups[2].Value);  //結果:qq

                    Console.WriteLine(match.Groups[3].Value);  //結果:com

                }

 


 

 

JavaScript正則表達式

創建:

字面值:var regex=/元字元/;

構造函數:var regex=new RegExp("元字元");

 

匹配:

bool 正則表達式對象.test("字元串");

   var regex = /\d*/;

    alert(regex.test("122"));   //true

 

提取:

像數組的對象 正則表達式對象.exec("字元串");

這個對象的[0]是匹配到的結果,[1],[2]....是各個組

1.單個提取

 

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 說明:本文是個人翻譯文章,由於個人水平有限,有不對的地方請大家幫忙更正。 原文: ".NET Core Tools Telemetry" 翻譯: ".NET Core 工具遙測(應用信息收集)" .NET Core 工具遙測(應用信息收集) .NET Core 工具包含收集使用信息的 "遙測功能" ...
  • Visual Studio 支持從一臺電腦到另一臺設備的遠程調試。進行遠程調試時,主機可以是任何支持 Visual Studio 的平臺。遠程設備可以是 x86、x64 或 ARM 平臺。 本文將指導大家如何使用 Visual Studio 對 ASP.NET MVC 項目進行遠程調試。 <! m ...
  • 今天做提示框的時候一直不顯示,讓我鬱悶好久,晚上吃飯的時候問了同事一下,他給了一個思路, 他說可能是因為由於頁面中的無閃刷新導致的結果;百度了一下真找到瞭解決方法 在頁面中存在無閃刷新控制項的時候提示框不能在用普通的,要特殊的處理一下; /// <summary> /// 顯示提示信息(用於頁面中存在 ...
  • 在研究了一個星期的三層架構寫出的一個小功能,使用三層架構並實現點擊新聞標題可以跳轉到自己寫的新聞頁面。 首先是一個DBHelper,這個不是我自己寫的,是朋友給我的 using System; using System.Data; using System.Xml; using System.Dat ...
  • http://www.cnblogs.com/niklai/p/5655061.html ...
  • 我是一年經驗的web程式員,想學習一下wpf,比較喜歡做項目來學習,所以在網上找了一些項目,分析代碼,儘量能夠做到自己重新敲出來 第一個項目是 中間的方塊會不停的旋轉。 第一步,新建wpf項目 第二步,為xaml窗體佈局 下麵是源代碼(不是我寫的) 先給grid設置背景顏色: Background= ...
  • 首先是主頁面main.aspx 然後是左邊頁面Left.aspx 最後是右邊的頁面AddNews.aspx,這個頁面就可以插入自己需要的頁面鏈接了。 以上是我在學習asp的過程中學習到的一個知識點,希望對大家有用。 ...
  • 進程會等待所有的前臺線程完成後在結束工作,但是如果只剩下後臺線程,則會直接結束工作 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...