// + 号代表前面的字符必须至少出现一次(1次或多次)`
// * 号代表前面的字符可以不出现,也可以出现一次或者多次(0次、或1次、或多次)。
// ? 问号代表前面的字符最多只可以出现一次(0次、或1次)。
var str=@"^(?=.*[0-9])(?=.*[a-zA-Z])[0-9a-zA-Z.!@#$%^&*()]{6,15}$"
//(?=.*[0-9]) 这个正向零断言 的意思是 限制必须有0-9的数字
//(?=.*[a-zA-Z]) 这个正向零断言 的意思是 限制必须有a-zA-Z的字符
//[0-9a-zA-Z#]{6,15} 后面是指定位数 和 可以包含的元素 0-9a-zA-Z#
//^开始符号 $结束符号
//?= 是正向零宽断言
//.是匹配除了结束符以外的字符
//*是贪婪匹配