/*
* 索引器:
* 作用:让对象具有快速访问元素的能力
* 索引器和数组的区别:
* 1.索引器的索引类型不限定是整形
* 2.索引器可以有重载
* 3.索引器可以看成是特殊的属性,具备set 和get访问器
*
* 索引器和属性的区别
* 1.索引器是以函数名this来表示,属性是以任何名子,但首字母必须大写
* 2.索引器可以重载,但是属性不能
* 3.索引器具有参数,但是属性没有
* 4.索引器不能用static修饰
*/
/*
* 正则表达式(Regex)
* 正则表达式通常用来检查,检索。替换符合莫个格式的文本
*
* 元字符:
* 正则表达式语言有俩种基本字符组成
* 原义(正常)文本字母和元字符
* 元字符使用正则表达式具有处理能力
*
* ^ 表示开头
* $ 表示结尾
* * 表示匹配零次或多次
* ? 0 or 1
* + 1 or more
* \w 表示字母,数字,下划线,汉字任意字符
* \d 表示数字
* \D 表示非数字
* \s 表示字符串
* \S 表示非空白字符
* 【\s\S】 表示任意字符
* 【\s\S】* 表示0到任意个字符
* 【\s\S】*? 0个字符,匹配任意个字符前的次数
* 【a-A】 表示莫个范围内的字符,与指定区间内任何字符进行匹配
* 【a-Z】
* 【0-9】
* \u4e00-\u9fa5 表示中文
* | 逻辑或
* () 分组
* {n,m} 表示最少匹配n次最多匹配m次
* {n,} 最少匹配n次
* {n} 匹配前面的字符最少n次
* [^X] 表示除了x外任意字符
*
*
using System;
namespace 索引器
{
class Test
{
//定义一个数组
private int[] intArray=new int[10];
//定义索引器
public int this [int index] {
set{
if (index >= 0 && index < 10)
intArray [index] = value;
}
get{
if(index <= 0 && index >= 10)
{
return 0;
}
else
{
return intArray[index];
}
}
}
public string this[string index]
{
get{
return "你好";
}
}
}
class MainClass
{
public static void Main (string[] args)
{
int []intArray=new int[2];
intArray [0] = 100;
intArray [1] = 200;
Test t = new Test ();
t [0] = 1;
t [1] = 100;
t [2] = 2;
Console.WriteLine (t[0]);
Console.WriteLine (t[1]);
Console.WriteLine (t[2]);
Console.WriteLine (t["A"]);
}
}
}
//演示在开头处拼接
string str = "大家好";
string newStr = Regex.Replace (str, "^", "首长:");
Console.WriteLine (newStr);
//演示在结尾处拼接
string str1 = "大家好";
string newStr1 = Regex.Replace (str1, "$", "首长");
Console.WriteLine (newStr1);
以数字开头,中间有n个数字,以中文结尾
string str="010789";
string pattern=@"\d*[\u4e00-\u9fa5]$";
if (Regex.IsMatch (str, pattern)) {
Console.WriteLine ("合法");
} else {
Console.WriteLine ("不合法");
}
匹配邮箱
xxxx@xxx.xx
string str="zhaoqing@Lanou3g.com";
string pattern =@"\w+@\w+(\.\w+)$";
if (Regex.IsMatch (str, pattern)) {
Console.WriteLine ("合法");
} else {
Console.WriteLine ("不合法");
}
匹配身份证
身份证15位或18位
15位全数字
18为全数字
17为数字+x
string str="111454454646456464";
string pattern=@"(^\d{15,15}$)|(^\d{17}([0-9]|X)$)";
if (Regex.IsMatch (str, pattern)) {
Console.WriteLine ("合法");
} else {
Console.WriteLine ("不合法");
}
匹配座机
010-12345678
01012345678
(010)12345678
string str="(010)12345678";
string pattern=@"(^[0]{1}[0-9]{2,3}-[0-9]{7,8})|(^[0]{1}[0-9]{10})|(^\([0]{1}[0-9]{2,3}\)[0-9]{7,8})";
if (Regex.IsMatch (str, pattern)) {
Console.WriteLine ("合法");
} else {
Console.WriteLine ("不合法");
}
//匹配手机号
string str1="18151283171";
string pattern1=@"^[1]{1}[0-9]{10}$";
if (Regex.IsMatch (str1, pattern1)) {
Console.WriteLine ("合法");
} else {
Console.WriteLine ("不合法");
}
检索特殊字符
string str="*$12545684";
string pattern = @"[^\w\s]+";
MatchCollection mc=Regex.Matches(str,pattern);
Console.WriteLine (mc.Count);
foreach (var item in mc) {
Console.WriteLine (item);
}