LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

字符串和正則表達式

admin
2017年2月7日 18:48 本文熱度 5631
System.String是一個功能非常強大且用途非常廣泛的基類,但它不是.NET中唯一與字符串相關的類,特別是System.Text和System.Text.RegularExpressions命名空間中的類。本文主要介紹內容:
1、創建字符串
2、格式化表達式
3、正則表達式

一、System.String類

System.String是一個類,專門用于存儲字符串,允許對字符串進行許多操作。
例如:
string messsage1 = "Hello"// return "Hello"
message1 += ", There"// return "Hello, There"
string message2 = message1 + "!" //return "Hello, There!"
C#還允許類似于索引符的語法來提取指定的字符:
char char4 = "message"[4]; //return ''a''

1.1 創建字符串

string類的功能非常強大,但是它存在一個問題:重復修改給定的字符串,效率很低。它實際上是一個不可變的數據類型,一旦對字符串進行了初始化,該字符串就不能改變了。修改該字符串的內容時,實際上是創建一個新的字符串,如果有必要,可以把舊的字符串內容復制到新字符串中。
例如:
string greetingText= "Hello. ";
greetingText 
+= "This is source code";
在執行這段代碼時,首先創建一個String對象greetingText,并初始化為文本"Hello. "(最后是一個空格)。此時.NET運行庫為該字符串分配足夠的內存在保存初始文本(7個字符),再設置變量greetingText,表示這個字符串實例。從表面上看,執行下一句代碼,是把新的文本直接添加到初始文本的后面,但實際并非如此執行的。而是另外創建一個新的字符串實例,給他分配足夠的內存,以保存合并起來的文本,然后更新存儲再變量greetingText中的地址,使變量指向新的字符串對象。舊的字符串對象被撤銷了引用——不再有變量引用它,下一次垃圾收集器清理應用程序中所有未使用的對象時,就會刪除它。

當字符串的長度很大的時候,這樣做顯然影響了執行效率,所以C#中用System.Text.StringBuilder類來處理較長的字符串。StringBuilder類功能沒有String類強大,功能僅限于替換和添加或刪除字符串中的文本,但是工作方式非常高效。
用StringBuilder類創建字符串:
StringBuilder greetingBuilder = new StringBuilder("Hello from all the guys at Wrox Press. "150);//顯示給定初始文本內容和分配內存長度

StringBuilder message 
= new StringBuilder("Hello");//僅僅給出字符串,系統自動分配內存

StringBuilder message2 
= new StringBuilder(20);//給指定容量創建一個空的StringBuiler 

StringBuiler類有兩個主要屬性:
Length指定字符串的實際長度
Capacity是字符串占據存儲單元的長度
StringBuilder類的主要方法:
Append()方法,在字符串尾部添加新的文本
Replace()方法,替換文本

注意:不能把StringBuilder轉換為String,如果要把StringBuilder的內容輸出為String,唯一的方式是使用ToString()方法。

1.2 格式化字符串

double d = 13.45;
int i = 45
;
sting result 
= String.Format("The double is {0,10:E} and the int contains {1}",d,i);
{}中的0、1等分別對應后面的d和i,10:E是格式,表示占10個字符,如果數字是正數,結果向右對齊,如果是負數則左對齊。E表示科學計數法。
格式符應用含義示例
C數字類型專用場合的貨幣值$4834.50(USA)
D只用于整數類型一般的整數4834
E數字類型科學計數法4.834E+003
F數字類型小數點后的位數固定4834.50
G數字類型一般的數字4834.5

N

數字類型通常是專用場合的數字格式4,834.50
P數字類型百分比計數法432,000.00%
X只用于整數類型16進制格式1120(如果需要顯示0x1120,需要寫上0x)

二、正則表達式

2.1 正則表達式概述

正則表達式語言是一種專門用于字符串處理的語言,使用正則表達式可以對字符串執行許多復雜而高級的操作,例如:區分URI的各個元素(例如:http://www.sina.com.cn,提取協議、計算機名、文件名等)。
在C#中只需要用System.Text.RegularExpressions類的RegEx()方法或者調用靜態方法RegEx(),給它們傳遞要處理的字符串和一個正則表達式,就可以完成我們所需要的操作,得到預期的結果了。
下面列出正則表達式常用字符表
符號含義示例匹配示例
^輸入文本的開頭^BB,但只能是文本中的第一個字符
$輸入文本的結尾X$X,但只能是文本的最后一個字符
.除了換行符(\n)以外的所有單個字符i.ationisation、ization
*可以重復0次或者多次的前導字符ra*trt、rat、raat、raaat等
+可以重復1次或者多次的前導字符ra+trat、raat和raaat等(不包含rt)
?可以重復0次或者1次的前導字符ra?trt或者rat
\s任何空白字符\sa[space]a、\ta、\na等
\S任何不是空白的字符\SF

aF、rF、cF等,但不能是\tF

\b字邊界ion\b以ion結尾的任何字
\B是不是字邊界的位置\BX\B字中間的任何X
如果搜索一個元字符,可以用.(一個句點)表示所有除了\n以外的字符,而\.表示一個點。
可以把要替換的字符放到括號中:[1│C]表示字符可以是1或者C,如果要搜索map或者man,可以用ma[n│p]。
方括號也可以表示范圍:[a-z]表示a到z的所有小寫字母。

示例如下:
string Text = @"This comprehensive compendium provides a broad and thorough investigation of all aspects of programming with ASP.NET";
string pattern = @"\ba";//查找所有以a開頭的字符

MatchCollection matches = Regex.Matches(Text, pattern, RegexOptions.IgnoreCase);

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

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
亚洲人成电影在线天堂色 | 日韩欧美国产综合一区 | 欧美久久久久久久综合网 | 日本男女无遮羞羞视频 | 亚洲欧美五码中文字幕 | 日本韩国野花视频爽国产在线 |