C#學習13——正則表達式

一、正則表達式

一種匹配輸入文本的模式,是由特殊字符組成,用于匹配字符串中的字符組合。

二、正則表達式有哪些?

1.Regex 類(引入System.Text.RegularExpressions;)

Regex 類用于表示一個正則表達式。

1)Regex.Match(inputString, "pattern");?? ?

返回第一個匹配項(即只找第一個)。

string input = "123abc456";
Match match = Regex.Match(input, @"\d+");if (match.Success)
{Console.WriteLine(match.Value); // 輸出: 123
}

2)Regex.Matches(...)?? ??? ??? ?

返回所有匹配項(全部找到)。

string input = "123abc456def789";
MatchCollection matches = Regex.Matches(input, @"\d+");foreach (Match match in matches)
{Console.WriteLine(match.Value); // 輸出: 123, 456, 789
}

3)Regex.IsMatch(...)?? ??? ??? ?

當你不需要具體匹配內容,只要知道是否“存在匹配”即可。

string input = "abc123xyz";
bool hasDigits = Regex.IsMatch(input, @"\d+");Console.WriteLine(hasDigits); // 輸出: True

4)Regex.Replace(...)?? ??? ??? ?

替換匹配到的內容為指定字符串。??

?eg1:

替換所有數字?? ?Regex.Replace(text, @"\d+", "*")
?eg2:

string input = "電話:123-456-7890,郵箱:test@example.com";// 替換所有數字為 *
string result1 = Regex.Replace(input, @"\d", "*");
Console.WriteLine(result1);
// 輸出:電話:***-***-****,郵箱:test@example.com// 替換所有郵箱地址為 [隱藏]
string result2 = Regex.Replace(input, @"\b[\w.-]+@[\w.-]+\.\w+\b", "[隱藏]");
Console.WriteLine(result2);
// 輸出:電話:123-456-7890,郵箱:[隱藏]
5)Regex.Split(...)?? ??? ??? ?

根據正則表達式匹配內容,將字符串分割成多個部分。

string input = "apple, banana; orange|grape";// 按照非單詞字符(逗號、分號、豎線)進行分割
string[] parts = Regex.Split(input, @"[,\s;|]+");foreach (string part in parts)
{Console.WriteLine(part);
}
// 輸出:
// apple
// banana
// orange
// grape

6.區別:
方法?? ?????????????????返回類型?? ?????????是否返回匹配內容?? ?是否修改原字符串?? ?主要用途
Match(...)?? ?????????Match?? ??????????????? 是(第一個)?? ?? 否?? ?????????獲取第一個匹配項
Matches(...)?? ?????MatchCollection?? 是(全部)?? ?????? 否?? ?????????獲取所有匹配項
IsMatch(...)?? ??????bool?? ?????????????????? 否? ? ? ? ? ? ? ? ? ? ? ? 否?? ?????????判斷是否匹配成功
Replace(...)?? ?????string?? ???????????????? 否? ? ? ? ? ? ? ? ? ? ? ?? 是?? ?????????替換匹配內容
Split(...)? ? ? ? ? ? ? string[]?? ?????????????? 否? ? ? ? ? ? ? ? ? ? ? ?? 是?? ?????????按匹配規則拆分字符串

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/85342.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/85342.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/85342.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Redis】持久化機制:RDB / AOF 的應用與場景

文章目錄 Redis 持久化一、RDB1.1 說明1.2 觸發機制手動觸發自動觸發 1.3 流程說明1.4 文件處理1.5 優缺點 & 適用場景 二、AOF2.1 說明2.2 使用 AOF2.3 命令寫入2.4 文件同步2.5 重寫機制2.6 啟動時數據恢復2.7 優缺點 & 適用場景 三、不使用 AOF / RDB 的情況3.1 場景…

Python 企業級開發與DevOps實踐

https://www.python.org/static/community_logos/python-logo-master-v3-TM.png 大型項目結構與設計模式 項目結構規范 text 復制 下載 enterprise_app/ ├── docs/ # 項目文檔 ├── tests/ # 測試代碼 │ ├── unit/ …

E結構體基礎.go

前言:結構體是一種用戶自定義的數據類型,它可以將多個不同類型的數據整合在一起,形成一個有機的整體。這就好比在現實生活中,我們有各種各樣的物品,它們各自有不同的屬性和用途,而結構體就像是一個收納箱&a…

Spring @Autowired 依賴注入全解析

Autowired 是 Spring 框架中實現依賴注入的核心注解,其自動裝配過程可分為以下步驟,結合了類型匹配、名稱解析和容器協作機制: 1. 組件掃描與 Bean 定義注冊 掃描階段:Spring 容器啟動時,通過 ComponentScan 或 XML 配…

將git的普通目錄用idea初始化為maven項目

在 IntelliJ IDEA 中將一個已存在的 Git 目錄初始化為 Maven 項目,可以通過以下步驟完成。這些步驟假設你已經有一個包含代碼的 Git 倉庫,并希望將其轉換為 Maven 項目結構,以便更好地管理依賴和構建。 步驟 1:打開或導入 Git 倉庫…

Vue 中 key 屬性的深入解析:改變 key 導致組件銷毀與重建

一、key 屬性的核心作用 在 Vue 中,key是一個特殊的屬性,主要用于協助 Vue 的虛擬 DOM(Virtual DOM)算法高效地更新實際 DOM。它的核心作用可以概括為: 唯一標識節點:為每個節點提供一個唯一的身份標識優化 Diff 算法:幫助 Vue 準確判斷兩個節點是否為同一節點(如for循…

【音視頻】PJSIP庫——示例簡介、C++類說明

1、簡介 pjsip庫的源碼中有很多示例,是入門pjsip的第一手資料,下面將各個示例所演示的功能列舉出來,以便下一步學習; 最后總結下C++接口主要類及成員函數說明。 2、示例介紹 2.1 音視頻處理 aectest 音頻回聲消除測試工具,用于演示音頻處理模塊中的回聲消除(AEC)功能…

網站用CDN可以防DDoS和CC攻擊嗎?

現在市面上常見有兩種CDN,加速CDN與高防CDN,這兩種的區別還是很大的。 加速CDN: 加速CDN基本上都是共享、無防節點,主要做的是加速,所以價格也會相對較低,大陸地區的CDN都需要備案域名接入使用。 高防CD…

【圖片識別改名】批量識別圖片中的文字對圖片進行改名,識別文字對圖片重新命名的操作步驟和注意事項

一、應用場景 快遞單號識別與管理:在快遞業務中,每天會產生大量的快遞面單圖片。通過咕嘎OCR批量識別面單上的快遞單號等關鍵信息,并以此對圖片進行重命名,方便工作人員快速查詢和管理快遞包裹的物流信息,提高快遞處理…

先理解軟件工程,再談AI輔助研發

摘要: 近期行業內對“AI賦能軟件工程”的討論,大多聚焦于代碼生成等局部提效,這是一種危險的短視。本文旨在糾正將“軟件開發”等同于“編碼”的普遍誤解,深入探討軟件工程的系統性本質。我們將論證,若缺乏堅實的工程體…

Android軟件適配遙控器需求-案例經驗分享

不分大屏產品需要有遙控器功能,這里分享部分實戰經驗 文章目錄 前言一、案例部分效果圖二、項目基礎架構三、焦點基礎知識適配遙控器基礎-焦點問題焦點管理明確焦點狀態布局實現硬編碼實現引入第三方自定義組件實現 焦點順序作用 初始焦點 requestFocus 按鍵處理獲取…

《HTTP權威指南》 第3章 HTTP報文

報文是如何流動的 HTTP報文是在HTTP程序之間發送的數據塊。數據塊以一些文本形式的元信息開頭。 報文方向有:流入、流出、上游、下游。 流入和流出描述事務處理的方向,流入和流出是基于服務器的描述。 流入:客戶端發往服務器的請求報文 流…

Kafka 集群架構與高可用方案設計(二)

Kafka 集群架構與高可用方案的優化策略 合理配置參數 在 Kafka 集群的配置中,參數的合理設置對于系統的高可用性和性能表現起著關鍵作用。例如,min.insync.replicas參數定義了 ISR(In-Sync Replicas,同步副本)集合中…

47-Oracle ASH報告解讀

上一期生成了ASH報告后,就需要解讀報告關鍵信息。ASH的使用可以快速定位瞬時性能問題。生產環境的場景時間緊、任務重,但是必須要結合具體業務分析,同時借助其他工具做報告做趨勢分析。 一、ASH 技術原理? ?1. 核心機制? ?采樣原理?&a…

“本地化思維+模塊化體驗”:一款輕量數據中心監控系統的真實測評

“本地化思維模塊化體驗”:一款輕量數據中心監控系統的真實測評 在數據中心運維逐步精細化的今天,一款真正貼合本地用戶習慣、設計有溫度的系統并不多見。近期體驗了一款功能全面、邏輯清晰的監控平臺,給人留下了深刻印象。并不是廣。今天就從…

詞編碼模型有哪些

詞編碼模型有哪些 詞編碼模型在高維向量空間的關系解析與實例說明 如Word2Vec、BERT、Qwen等 一、高維向量空間的基礎概念 詞編碼模型(如Word2Vec、BERT、Qwen等)的核心是將自然語言符號映射為稠密的高維向量,使語義相近的詞匯在向量空間中位置接近。以Qwen模型為例,其…

elementui el-select 獲取value和label 以及 對象的方法

獲取 el-select 的 value 和 label 值 在 Element UI 的 el-select 組件中,可以通過以下方法獲取選項的 value 和 label 值。 1、綁定 v-model 獲取 value el-select 通常通過 v-model 綁定 value 值,直接訪問綁定的變量即可獲取當前選中的 value。…

樹莓派與嵌入式系統實驗報告

一、Linux 系統編譯工具鏈實踐:mininim 源碼編譯 虛擬機 Ubuntu 編譯流程 環境配置問題 編譯時遇到虛擬機無法聯網的情況,通過連接個人熱點解決(校園網限制導致無法訪問外部資源)。 執行 ./bootstrap 時報錯 gnulib-tool: command…

IDEA部署redis測試

新建springboot,項目改為:testredis E:\ideaproject\testredis\src\main\java\org\example\testredis\TestredisApplication.java 代碼為: package org.example.testredis;import org.springframework.boot.SpringApplication; import org.…

旅游服務禮儀實訓室:從歷史演進到未來創新的實踐探索

一、旅游服務禮儀實訓室的歷史演進:從禮制規范到職業化培養 旅游服務禮儀實訓室的建設并非一蹴而就,其發展歷程與人類對禮儀認知的深化及職業教育體系的完善密切相關。 1. 古代禮儀教育的萌芽 禮儀作為社會行為規范,最早可追溯至中國夏商周…