在C 中,使用過程模式和表示式模式替換關鍵字母

2021-05-02 03:23:08 字數 1026 閱讀 3844

基於過程和基於表示式方法的比較

一般情況下,使用規則表示式的使用者可以分為以下二大類:第一類使用者盡量不使用規則表示式,而是使用過程來執行一些需要重複的操作;第二類使用者則充分利用規則表示式處理引擎的功能和威力,而盡可能少地使用過程。

對於我們大多數使用者而言,最好的方案莫過於二者兼而用之了。我希望這篇文章能夠說明.net語言中regexp類的作用以及它在效能和複雜性之間的優、劣點。

基於過程的模式

我們在程式設計中經常需要用到的乙個功能是對字串中的一部分進行匹配或其他一些對字串處理,下面是乙個對字串中的單詞進行匹配的例子:

string text = "the quick red fox jumped over the lazy brown dog.";

system.console.writeline("text=[" + text + "]");

string result = "";

string pattern = @"/w+|/w+";

foreach (match m in regex.matches(text, pattern))

system.console.writeline("result=[" + result + "]");

正象上面的例子所示,我們使用了c#語言中的foreach語句處理每個匹配的字元,並完成相應的處理,在這個例子中,新建立了乙個result字串。這個例子的輸出所下所示:

text=[the quick red fox jumped over the lazy brown dog.]

result=[the quick red fox jumped over the lazy brown dog.]

基於表示式的模式

完成上例中的功能的另一條途徑是通過乙個matchevaluator,新的**如下所示:

static string captext(match m)

static void main()

同時需要注意的是,由於僅僅需要對單詞進行修改而無需對非單詞進行修改,這個模式顯得非常簡單。

在C 中使用正規表示式

摘要 描述正規表示式在專案中的實際應用,介紹如何利用它來解析字串。諶總和老譚這兩個人,有不少相似的地方。比如說,在軟體設計和實現的時候,都希望系統的邏輯能清晰地呈現出來,也就是說,使軟體具備清晰的結構。但這一次,老譚走向了自己的反面。討論的是公式的管理問題。專案中的節點量 指標值等資料的計算,都會用...

C 在for迴圈當中使用break 表示式3

for迴圈語句語法格式為 for 表示式1 表示式2 表示式3 for迴圈的執行過程是 使用break的for迴圈 include using namespace std intmain cout break i i endl return0 輸出結果 i 0 i 1 i 2 i 3 i 4 i 5...

在UltraEdit中使用正規表示式

在ultraedit中使用正規表示式 刪除空行 替換 t p 為 空串 刪除行尾空格 替換 t 為 空串 刪除行首空格 替換 t 為 空串 每行設定為固定的4個空格開頭 替換 t t p 為 1 每段設定為固定的4個空格開頭 替換 t 為 如果一行是以空格開始的,則視之為一段的開始行 將一段合併為一...