C# 正規表示式 REGULAR EXPRESSION 判斷字串是否是為16進制字串[只包含0~9 A~F a~f] (GOOGLE: C# 字串 只有數字)
C# 正規表示式 REGULAR EXPRESSION 判斷字串是否是為16進制字串[只包含0~9 A~F a~f] (GOOGLE: C# 字串 只有數字)
資料來源: https://blog.csdn.net/u013489804/article/details/46472587
public static void Thread_ImportCardCSV(object arg)
{
ProgressDialog d = (ProgressDialog)arg;
Thread.Sleep(500);
//---
//do something
m_ALImportCard.Clear();
int intCount = 0;
m_StrPercentage = "...";
d.m_strMessage = m_StrMain + "\n" + m_StrPercentage;
StreamReader SRcount = new StreamReader(m_StrImportCardCSVPath);
while (!SRcount.EndOfStream)// 每次讀取一行,直到檔尾
{
String line = SRcount.ReadLine();// 讀取文字到 line 變數
intCount++;
if ((intCount % 3) == 0)
{
m_StrPercentage = "";
}
else
{
m_StrPercentage += ".";
}
d.m_strMessage = m_StrMain + "\n" + m_StrPercentage;
}
SRcount.Close();
intCount--;
int intnowindex = 0;
StreamReader sr = new StreamReader(m_StrImportCardCSVPath);
String StrTitle = "";
while (!sr.EndOfStream)// 每次讀取一行,直到檔尾
{
String line = sr.ReadLine();// 讀取文字到 line 變數
if (intnowindex == 0)
{
StrTitle = line;
}
else
{
m_StrPercentage = String.Format("{0}/{1}", intnowindex-1, intCount);
d.m_strMessage = m_StrMain + "\n" + m_StrPercentage;
bool blncheck = true;
string[] strs = line.Split(',');
//string pattern = @"^[a-zA-Z0-9]\d{2}$"; //开头以字母或数字,然后后面加两个数字字符
//string pattern = @"^[a-zA-Z0-9]*$"; //匹配所有字符都在字母和数字之间
//string pattern = @"^[a-z0-9]*$"; //匹配所有字符都在小写字母和数字之间
//string pattern = @"^[A-Z][0-9]*$"; //以大写字母开头,后面的都是数字
//string pattern = @"^\d{3}-\d{2}$";//匹配 333-22 格式,三个数字加-加两个数字
string pattern = @"^[a-fA-F0-9]*$"; //匹配所有字符都在16進制
if (strs[0].Length!=16)
{
blncheck = false;
}
else
{
if (!System.Text.RegularExpressions.Regex.IsMatch(strs[0], pattern))
{
blncheck = false;
}
}
if ((StrTitle.Length > 0) && (line.Length >= 16) && (blncheck))
{
m_ALImportCard.Add(line);
}
}
intnowindex++;
}
sr.Close();
//---do something
d.Invoke(new Action(d.Close));
}