其實很早就知道了正規表示式,在整合vbscript指令碼的時候,就看到了該功能,不過那時覺得很難,覺得也派不上什麼用場,所以也沒有過多關注。
最近看了孟巖老師的關於正規表示式講解,有一種學習正規表示式的衝動,適時我們開發的專案中需要嵌入python指令碼功能,需要乙個指令碼編輯器,關鍵字變色等等相關功能用正規表示式實現相對容易的多。
前段時間買了本紅皮書《c#字串和正規表示式參考書》(這真是一本好書,想學習正規表示式的可以參考一下),花了幾天的時間把該書看了一遍,正規表示式的用法基本上也弄清楚了,並且對字串相關的知識也越來越感興趣了。
對正規表示式的具體規則和使用,實沒有什麼可說的,網上的文章多的很,都說的比我的好。這是我學習正規表示式做的乙個簡單正規表示式測試工具,其實大部分**就是上面書的乙個示例(不知道為什麼,上網竟沒有找到該書的示例原始碼),又上網查了一些資料,把一些常見的正規表示式也嵌入了進去,方便了正規表示式的應用(以後有時間做乙個比較理想的正規表示式工具)。
這是程式的截圖:
//獲取正規表示式的匹配引數
private regexoptions getselectedregexoptions()
private void testregexbutton_click(object sender, eventargs e)
else
}catch (argumentexception ex)
}private void replacebutton_click(object sender, eventargs e)
catch (argumentexception ex)
}private void splitboutton_click(object sender, eventargs e)
catch (argumentexception ex) }
private void matchesbutton_click(object sender, eventargs e)
catch (argumentexception ex) }
private void groupsbutton_click(object sender, eventargs e)
this.resultstextbox.forecolor = color.black;
this.resultstextbox.text = resultsstring.tostring();
}catch (argumentexception ex) }
//常見正規表示式
private void familiarregex_linkclicked(object sender, linklabellinkclickedeventargs e)
private void menuregexitem_click(object sender, eventargs e)
-d|d-d";
break;
strregex = @"[1-9]d(?!d)";
break;
case "email位址1":
strregex = @"^(([^<>()/.,; :@"+'"'+@"
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
正規表示式 表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...