C# 正则表达式
字母:
数字
单个数字\d
非数字\D
字符边界 \b
任意字符 .
字符点 \.
或[abc]:匹配 a 或b 或c 都能匹配
重复多次 c{2} 匹配两个c
重复多次(范围) b{2,3} 匹配重复2到3次b
重复多次(0-多次) b* 匹配 0个到多个b
重复多次(1-多次) b+ 匹配 1个到多个b
匹配单个 b? 匹配要么有b 要么没b
匹配空白 \s(小s)
匹配所有不是空白的地方 \S(大S)
开头 ^
结尾 $
任意长度*
综合测试:
^abb.*b34$ 匹配例子的全部
解释 以abb开头,任意字符任意长度匹配, 最后以b34结尾
匹配一段 (abbc)
匹配所有 (.*)
所有字符 \w(小写) 一个一个的匹配 (不包括符号)
除了所有字符 也就是符号 \W(大写) 一个一个的匹配
string[] values = { "111-22-3333", "212-64-4321", "12133213232132" }; string pattern = @"^\d{3}-\d{2}-\d{4}"; foreach (string a in values) { if (Regex.IsMatch(a, pattern)) { Console.WriteLine("{0} is valid", a); } else { Console.WriteLine("{0} is not valid", a); } } Console.ReadLine();
替换字符串
private static void RegexReplace() { string pattern = @"\b\d+\.\d{2}\b"; string replacement = @"$$$&"; string input = "Total cost:103.64"; Console.WriteLine(Regex.Replace(input, pattern, replacement)); }
分割字符串
private static void RegexSplit() { string input = "1. Egg 2. Bread 3. Mike 4. Coffe"; string pattern = @"\b\d{1,2}\.\s"; foreach (string item in Regex.Split(input, pattern)) { if (!string.IsNullOrEmpty(item)) { Console.WriteLine(item); } } }