//限定符
string str = "abc ga1234gaa123ga abbc abbbbbbc";
//gaa? 匹配gaa后面的a一次或多次 ga gaa
var result1 = Regex.Matches(str, "gaa?");
//ab*c b可有可无,也可以有多个 ac abc abbbc
var result2 = Regex.Matches(str, "ab*c");
//ab+c 只能匹配abc abbc
var result3= Regex.Matches(str, "ab+c");
//ab{6}c b出现6次 abbbbbbc
var result4= Regex.Matches(str, "ab{6}c");
//ab{2,6}c b出现2到6次 abbc abbbbbbc
var result5 = Regex.Matches(str, "ab{2,6}c");
//ab{2,}c b出现2次以上 abbc abbbbbbc
var result6 = Regex.Matches(str, "ab{2,}c");
//(ab)+ ab出现多次 abbc abbbbbbc
var result7 = Regex.Matches(str, "(ab)+");
str = "a cat a dog a bird 123 abc ";
//或运算
//a (cat|dog)
var result8 = Regex.Matches(str, "a (cat|dog)");
//[^0-9] 所有非数字单个字符 包含空格
var result9 = Regex.Matches(str, "[^0-9]");
//[^0-9]* 所有非数字字符 包含空格 空格为单个字符
var result10 = Regex.Matches(str, "[^0-9]*");
//[^0-9]+ 所有非数字字符 包含空格
var result11 = Regex.Matches(str, "[^0-9]+");
// \d 数字 0-9 \D非数字字符
// \w 字符 数字或字符或下划线 \W非单词字符
// \s 同时包含空白符和换行符 \S非空白字符
// . 表示任意字符,但不包含换行符
// ^匹配行首 $匹配行尾
//<.+> 贪婪匹配
str = "<span><b>this is a sample text</b></span>";
var result12 = Regex.Matches(str, "<.+>");
//<.+?> 匹配所有<>中的内容,包含<>本身 ?将贪婪匹配切换成了懒惰匹配
str = "<span><b>this is a sample text</b></span>";
var result13 = Regex.Matches(str, "<.+?>");