1. 程式人生 > >c#正則表示式匹配整數和小數

c#正則表示式匹配整數和小數

用於判斷Textbox中的輸入是否為整數或者小數

參考資料:http://www.cnblogs.com/generalz/articles/1890097.html

              http://bbs.csdn.net/topics/360076679

c#中使用正則表示式需要加入using System.Text.RegularExpressions的引用

匹配整數的一種表示式:

Regex.IsMatch(inputerstr, "^([0-9]{1,})$")

其中Inputerstr是要匹配的字串

這個表示式僅匹配整數,如果是整數形式返回true,否則為false

匹配小數格式的表示式:

Regex.IsMatch(inputerstr, "^([0-9]{1,}[.][0-9]*)$")

其中Inputerstr是要匹配的字串

這個表示式僅匹配數字中有小數點格式的數字,如果是帶有小數點格式的純數字,返回true,否則為false。

C#正則表示式樣例示範:
  只能輸入數字:"^[0-9]*$"。
  只能輸入n位的數字:"^\d{n}$"。
  只能輸入至少n位的數字:"^\d{n,}$"。
  只能輸入m~n位的數字:。"^\d{m,n}$"
  只能輸入零和非零開頭的數字:"^(0|[1-9][0-9]*)$"。
  只能輸入有兩位小數的正實數:"^[0-9]+(.[0-9]{2})?$"。


  只能輸入有1~3位小數的正實數:"^[0-9]+(.[0-9]{1,3})?$"。
  只能輸入非零的正整數:"^\+?[1-9][0-9]*$"。
  只能輸入非零的負整數:"^\-[1-9][]0-9"*$。
  只能輸入長度為3的字元:"^.{3}$"。
  只能輸入由26個英文字母組成的字串:"^[A-Za-z]+$"。
  只能輸入由26個大寫英文字母組成的字串:"^[A-Z]+$"。
  只能輸入由26個小寫英文字母組成的字串:"^[a-z]+$"。
  只能輸入由數字和26個英文字母組成的字串:"^[A-Za-z0-9]+$"。
  只能輸入由數字、26個英文字母或者下劃線組成的字串:"^\w+$"。

  驗證使用者密碼:"^[a-zA-Z]\w{5,17}$"正確格式為:以字母開頭,長度在6~18之間,只能包含字元、數字和下劃線。
  驗證是否含有^%&’,;=?$\"等字元:"[^%&’,;=?$\x22]+"。
  只能輸入漢字:"^[\u4e00-\u9fa5]{0,}$"

"^\d+$"  //非負整數(正整數 + 0) 
"^[0-9]*[1-9][0-9]*$"  //正整數 
"^((-\d+)|(0+))$"  //非正整數(負整數 + 0) 
"^-[0-9]*[1-9][0-9]*$"  //負整數 
"^-?\d+$"    //整數 
"^\d+(\.\d+)?$"  //非負浮點數(正浮點數 + 0) 
"^(([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+)?))$"  //非正浮點數(負浮點數 + 0) 
"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //負浮點數 
"^(-?\d+)(\.\d+)?$"  //浮點數 
"^[A-Za-z]+$"  //由26個英文字母組成的字串 
"^[A-Z]+$"  //由26個英文字母的大寫組成的字串 
"^[a-z]+$"  //由26個英文字母的小寫組成的字串 
"^[A-Za-z0-9]+$"  //由數字和26個英文字母組成的字串 
"^\w+$"  //由數字、26個英文字母或者下劃線組成的字串 
"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"    //email地址 
"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$"  //url

最後,根據資料,我所用的程式碼片段是;

 string regexString = @"(^[0-9]*[1-9][0-9]*$)|(^([0-9]{1,}[.][0-9]*)$)";//寫正則表示式,只能輸入數字&小數

Match m = Regex.Match(m_ccd, regexString);

if (!m2.Success)

 int selectionStart = textBox1.SelectionStart;                 
textBox1.SelectionStart = selectionStart;
 }
 else
{
 input = double.Parse(textBox1.text);
}