2010年5月27日 星期四

在C#中做字串分析

C#中的字串本身就有一些簡單的分析,例如Contains或EndsWith
但是如果是比較複雜的判斷,例如是否全部由字母構成
就需要使用正規表式(Regular Expression)來判斷了

bool IsAlpha(string s)
{
return !Regex.IsMatch(s, "[^a-zA-Z]");
}

用正規表式來確認字串規則時,會在字串中進行搜索
所以如果要判斷一個字串是否滿足"全部都由字母構成"
實際上得去判斷是否沒有"其餘字符存在"

另外,正規表式也可以做成執行個體

bool IsAlpha(string s)
{
Regex r = new Regex("[^a-zA-Z]");

return !r.IsMatch(s);
}

注意這裏的執行個體中的規則是不可變的
所以如果有大量的運算都需要用到同樣的規則再這樣使用
否則用靜態的方式會比較有彈性

--
參考資料
Regular Expressions Usage in C#
正規表式
Regex 類別
Regex.IsMatch 方法

沒有留言:

張貼留言