匹配分組數(shù)據(jù)
Match match = Regex.Match("age=30", @"^(.+)=(.+)$");if (match.Success){
Console.WriteLine(match.Groups[0] .Value);//輸出匹配的子字符串
Console.WriteLine(match.Groups[1] .Value);//獲取第一個(gè)分組的內(nèi)容
Console.WriteLine(match.Groups[2] .Value);//獲取第二個(gè)分組的內(nèi)容
}
if (item.To != null)
{
otRecipient = item.To.ToString();
MatchCollection rMatches = Regex.Matches(otRecipient, pattern);
for (int i = 0; i < rMatches.Count; i++)
{
otRecipient = ReplaceBookMark(otRecipient, rMatches[i].Value);
}
}
C#提取字符串中的數(shù)字
方法一仔燕、使用正則表達(dá)式
- 1擎宝、純數(shù)字提取
string str = "提取123abc提取"; //我們抓取當(dāng)前字符當(dāng)中的123
string result = System.Text.RegularExpressions.Regex.Replace(str, @"[^0-9]+", "");
多個(gè)數(shù)字值(分組輸出)
string str = "提取123abc提取234234234";
string r = @"[0-9]+";
Regex reg = new Regex(r);
MatchCollection mc = reg.Matches(str);//設(shè)定要查找的字符串
foreach (Match m in mc)
{
string s = m.Groups[0].Value;
}
- 2雌隅、帶有小數(shù)點(diǎn)數(shù)字提取
string str = "提取123.11abc提取"; //我們抓取當(dāng)前字符當(dāng)中的123.11
str=Regex.Replace(str, @"[^\d.\d]", "");
// 如果是數(shù)字蚁飒,則轉(zhuǎn)換為decimal類型
if (Regex.IsMatch(str, @"^[+-]?\d[.]?\d$"))
{
decimal result = decimal.Parse(str);
} - 3侦厚、提取大于等于0,小于等于1的數(shù)字
????Regex.IsMatch(str, @"^(01?|0.[0-9]+)$")
方法二梢灭、使用ASCII碼
string str = "提取123abc提取"; //我們抓取當(dāng)前字符當(dāng)中的123
foreach (char c in str)
{
if (Convert.ToInt32(c) >= 48 && Convert.ToInt32(c) <= 57)
{
sb.Append(c);
}
}
Console.WriteLine("使用ASCII碼提取");
Console.WriteLine(sb.ToString());
替換字符串中常見的特殊字符
- 1乎折、若字符串中含有字母,則使用以下方法
public static string RemoveSpecialCharacterToupper(string hexData)
{
//下文中的‘\\’表示轉(zhuǎn)義
return Regex.Replace(hexData, "[ \\[ \\] \\^ \\-_*×――(^)|'$%~!@#$…&%¥—+=<>《》!靶累!??腺毫?::?`·、挣柬。潮酒,;,.;\"‘’“”-]", "").ToUpper();
}
- 2邪蛔、其他
public static string RemoveSpecialCharacter(string hexData)
{
//下文中的‘\\’表示轉(zhuǎn)義
return Regex.Replace(hexData, "[ \\[ \\] \\^ \\-_*×――(^)|'$%~!@#$…&%¥—+=<>《》!急黎!???::?`·侧到、勃教。,匠抗;,.;\"‘’“”-]", "");
}