1. 程式人生 > >C#操作字串以及正則表示式的用法總結

C#操作字串以及正則表示式的用法總結

string是C#的基本型別,System.String是一個類庫,兩者本質上是沒有什麼差別的。編碼時使用string時系統會自動將其變換成String型別,多進行一次變換,所以在編碼時最好用後者。格式化字串有兩種方法:
public string ToString(string format);//用來將物件轉化成format格式的字串
public static string Fomat(string format ,object obj);//靜態函式將object物件轉換成format格式的字串這個函式是屬於string類的
比較字串常用方法(來自string類):
public static int Compare(string str1,string str2);
public int CompareTo(string str);
public bool Equals(string str);
public static bool Equals(string str1,string str2);
public static int CompareOrdinal(string str1,string str2);

//計算的是兩個字串首字元相減的ASCII碼值
連線字串方法:
public StringBuilder Append(string str1);//將要連線的字串先儲存在StringBuilder物件中,依次將str1等字串連線
public StringBuilder Append(char [] str1);
複製字串的方法:
public string CopyTo(int sourceIndex,char[] destination,int destination,int count);將物件字串從sourceindex位置開始複製到目的字元陣列destination,從目的串的destination
位置開始,複製過去count
public static string Copy(string str);將str字串用=賦給另一個字串物件
擷取字串物件方法:
public string SubString(int startindex,int length);//將去字串物件從startindex位置開始的length
替換字串:
public string Replace(char oldChar,char Newchar);
public string Replace(string str1,stringstr2);//將字串物件中的str1str2來替換
分割字串方法:
public string []Split(char []separater);
//用sepater中的分割字元來分割字串物件,將分隔的字串儲存到字串物件陣列上,供以後呼叫。
正則表示式的使用方法:
字元匹配語法
\d匹配數字(0,9)
\D匹配非數字
\w匹配任意單字元
\W匹配非單字元
\s匹配空白字元
\S匹配非空字元
.匹配任意字元
[...]匹配括號中的那些字元
與字元匹配結合使用的重複匹配語法表
{n}匹配n次字元
{n,}匹配n次以及n次以上字元
{n,m}匹配n次以上m次以下字元
匹配0次或1次字元
+匹配一次或多次
*匹配0次以上
正則表示式的類來自於system.text.regulerexpressions;
該名稱空間包含8個類;
Capture由於單個表示式的捕獲結果
CaptureCollection用於一個序列進行字串捕獲
Group表示單個捕獲的結果
GroupCollection表示捕獲組的集合
Match表示匹配單個正則表示式的結果
MatchCollection表示通過迭代方式應用正則表示式到字串中
Regex表示不可變的正則表示式
RegexCompilationInfo將編譯正則表示式需要的提供資訊
分析正則表示式:如下一個正則表示式a="010\\d{6,8}",前面010是正常的字元\d是匹配的語法所以在\d前面要加上”\”分割,\d{6,8}是匹配字元與重複匹配語法的結合表示按照\d這樣的字元重複匹配6次以上8次以下,所以像01012345678,0101234567,010123456,這三個字串都是符合語法的。
再一個例子b="\\w{1,}@\\w{1,}\\.com",因為字串的開頭就是字元匹配語法所以要用\分割,\w{1,}表示匹配單個字元重複匹配至少1次以上,\\.com相當於.com
貪婪與非貪婪的用法,何為貪婪?像上面寫的兩個正則表示式,一個足夠長的字串,在用上面的表示式匹配時,從頭開始掃描字串當發現一個滿足正則表示式的子字串時算是匹配成功一次,倘若此時字串字元後面沒有匹配完,那麼仍要依據正則表示式進行匹配,直到所有字元被匹配完,這樣的匹配過程就叫做貪婪匹配,因為他堅持要把所有的字元全部匹配過來才行,所以他很貪婪,反之限制他的匹配次數的過程就叫做非貪婪。如下給出例項:
貪婪模式[email protected]".*s",表示匹配以s結尾的任意字串,非貪婪模式[email protected]".*?s"表示只匹配0次或1次相當於是限制了他的重複匹配次數;
另外@當做 當做分割字元來用時相當於\的功能,即將兩個匹配字元分割開來,只不過是他需要放在字串的外面如[email protected]".*s"
正則表示式的二選一匹配:
(ab|xy)表示在匹配的時候匹配ab或匹配xy都可以,只要有一個成功就可以
捕獲和反向引用:
如下, c="<(\\w+)>.*</\\1>";正則表示式引擎會記憶()中匹配到的內容,作為一個組,叫做捕獲組,並且可以通過索引的方式進行引用。如上面的正則表示式所示,圓括號中\\w+匹配到的內容會被記錄到一個捕獲組裡面在後面用\1來進行引用,引用即是指\1處的內容與\w+的內容須一樣。如像"A<i>quantifire</\i>canbe<big>greedy</big>"的字串就能匹配出<i>quantifire</\i>,<big>greedy</big>這兩個字串來
模式匹配中常用的方法;
public static bool IsMatch(String input,String pattern);input為要匹配的字串,pattern是正則表示式
public bool IsMatch(String input);這個是非靜態的函式,input為要匹配的字串,正則表示式則要在建立Regex物件時在建構函式中傳遞,這個函式也就是隻能用Regex物件才能呼叫了;
public static MatchCollection Matches(string input, string pattern);Match.count可以輸出模式匹配成功了幾次,
public Match Match(string input);用`Match.value可以輸出匹配成功的字串。

相關推薦

C#操作字串以及表示式用法總結

string是C#的基本型別,System.String是一個類庫,兩者本質上是沒有什麼差別的。編碼時使用string時系統會自動將其變換成String型別,多進行一次變換,所以在編碼時最好用後者。格式化字串有兩種方法: public string ToStr

文字搜尋必學命令-grep egrep fgrep用法以及表示式

一、grep、egrep、fgrep命令   本文中主要介紹了linux系統下grep egrep fgrep命令和正則表示式的基本引數和使用格式、方法。(註釋:文中fg代表例子,) 1.1、基本定義:         grep(global search regu

linux下c/c++例項之五表示式字串匹配

一、簡介        標準的C和C++不支援正則表示式,但有一些函式庫可以輔助C/C++程式設計師完成這一功能。正則表示式常用函式:編譯正則表示式 regcomp()、匹配正則表示式 regexec()、釋放正則表示式 regfree()。 二、詳解 1、程式碼 re

C# MVC匹配URL多樣性和表示式用法

 public ActionResult Login()//VirtualPathData可獲取瀏覽器響應URL         {             VirtualPathData vpd = RouteTable.Routes.GetVirtualPath(null

C#表示式簡單總結

C#: c#中驗證正則表示式的類為System.Text.RegularExpressions.Regex 簡單的匹配方法為IsMatch(4個過載方法) 正則表示式語法: 一、匹配單個字元 [ ]:從中選擇一個字元匹配 如:單詞字元([ae])、非單詞

[C/C++]_[初級]_[表示式的反向引用]

場景 1.正則表示式查詢特定規則的字串十分高效率, 有一些規則的字串, 如果不用正則, 單是列舉+邏輯記錄匹配的程式碼量就非常大. 2.比如查詢一個小寫字串裡連續相同的字母, 之後把它替換為 Xn(大寫字母和重複字母個數)的方式進行加密. 正好正則表示式有專門的反向引用來解決查詢

Python re 模組以及表示式

re.compile( ):將正則表示式編譯成一個物件,加快速度並可以重複使用。 import re re.complie() re.sub() :對字串做替換處理 ''' re.sub(pattern, repl, string, count=0, fl

異常爬蟲demo、 find函式和findAll函式 以及表示式查詢元素

程式碼位於書的第1-2章 # from urllib.request import urlopen # from bs4 import BeautifulSoup # html = urlopen("http://pythonscraping.com/pages/page1

表示式用法不完全總結 lilycai

import re emailre1 = r'\[email protected]\.com' #\w+表示一個或多個英文字母,根據編譯方式也會表示中文,表示數字,但是不表示空格,\.表示., emailre2 = r'^\[email

在linux下,如何在C語言中使用表示式(整理)

  一個正則表示式的教程可以參看(裡面有個測試正則表示式的工具)      正則表達是用來匹配字串的好東東。       如果使用者熟悉Linux下的sed、awk、grep或vi,那麼對正則表示式這一概念肯定不會陌生。由於它可以極大地簡化處理字串時的複雜度,因此現 在已

【JavaScrpit】字串表示式的4個相關方法

字串和正則表示式的4個方法:split( );  search( );   match( );   replace( ); 下面介紹4個方法的各自作用: split( );        : 可以將一個字串拆分為

HDU6170 字串DP/表示式

Two strings Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 2573    Accepted Sub

python處理異常、日誌以及表示式

異常捕獲 高階語言通常都內建了一套try…except…finally…的錯誤處理機制,Python也不例外。而且只要在合適的層次去捕獲錯誤就可以了。 def foo(s): return 10 / int(s) def bar(s):

用html來操作css樣式 表示式

操作元素的CSS樣式:用style來表示 正則表示式: /* 正則表示式的建立方式:""方式1:/正則表示式/模式 方式2:new RegExp("正則表示式",模式); 正則表示式物件常用的方法:test()  使用正則物件去匹配字串  如果匹配成功返回ture,否則返

javascript表示式用法

php中要給指定的指定的字元加上或去除反斜槓,可使用現成的函式:addcslashes() & stripcslashes() 來實現,例項程式碼: <?php $str="select * from tables where n..

第6章 字串表示式

本章知識點: 1、字串的格式化; 2、字串的擷取、合併、過濾等操作; 3、字串的查詢; 4、正則表示式的語法; 5、Python的正則表示式模式; 6.1 常見的字串操作 6.1.1 字串的格式化 ## 格式化字串 str1 = "version" num = 1.0 format

表示式用法

1、範圍的字元類: [abc],範圍中的一個,a或b或c   [^abc],取反,除了abc中的一個 [a-z],小寫字母中的任何一個 [a-zA-Z],字母中的任何一個 [a-c[m-q]],並集,abcmnopq中的任何一個 [a-c && [b-f]]

用js以及表示式實現對郵箱和密碼的前端驗證

<!DOCTYPE html> <html> <head> <title>郵箱註冊</title> <style type="text/css"> td{ text-align: center; color

JAVA基礎之常用的類以及表示式,打基礎這些決不能少!

說到正則表示式,可能很多人想到的就是驗證之類的,沒錯,正則表示式作為一個驗證的方法或者說規則,只要是需要輸入和驗證的網站和app,沒有不需要使用正則表示式的,由此可以看出正則表示式的重要性。作為一個合格的程式設計師,正則表示式和執行緒、io流等是必須要知道的東西。 一、Math (1)

python 中表示式用法 re.findall()

參考部落格原址:https://blog.csdn.net/YZXnuaa/article/details/79346963 <link rel="stylesheet" href="https://csdnimg.cn/relea