当前位置:   article > 正文

C# 字符串和正则表达式_c# 正则匹配字符串

c# 正则匹配字符串

1.创建字符串

string 变量名 = "字符串内容";

            string str = "abcdrf";

            Console.WriteLine(str);

2.获取字符串的长度

变量名.Length

相当于调用了一个计算长度的方法

  1. string str = "abcdrf";
  2. Console.WriteLine(str);
  3. int len = str.Length;
  4. Console.WriteLine(len);

3.比较字符串是否一样可以直接使用 == 进行比较

4.字符串进行连接是用 + 进行连接,注意如果是字符型的数字,这里的 + 就是进行的连接,而不是加法

5.可以将字符串看做成数组,那么想要获取对应位置的字符,可以用 字符串名字[字符串的序号]

6.字符串是不可变的量,对字符串只能有添加不能修改和删除

字符串拼接的原理 

7.字符串的常用方法 

1.CompareTo)方法,比较字符串的内容

2.Replace()用另一个字符或者字符串替换字符串中给定的字符或者字符串

3.Split(在出现给定字符的地方,把字符串拆分称一个字符串数组

4.SubString0在字符串中检索给定位置的子字符串

5.ToLower(把字符串转换成小写形式

6.ToUpper(把字符串转换成大写形式

7. Trim删除首尾的空白

8.Concat(方法,合并字符串

9.CopyTo(方法,把字符串中指定的字符复制到一个数组中

10.Format()方法,格式化字符串

 

11.IndexOf(方法,取得字符串第一次出现某个给定字符串或者字符的位置

12.IndexOfAny0方法,

13.Insert()把一个字符串实例插入到另一个字符串实例的制定索引处

14.Join()合并字符串数组,创建一个新字符串

  1. //1.CompareTo()方法,比较字符串的内容
  2. string b = "123";
  3. int flag = 0;
  4. flag = str.CompareTo(b);
  5. Console.WriteLine(flag); //不相同返回1
  6. string c = "ab cd rf";
  7. flag = str.CompareTo(c);
  8. Console.WriteLine(flag);//相同返回0
  9. Console.WriteLine("------------------------------------");
  10. //2.Replace()用另一个字符或者字符串替换字符串中给定的字符或者字符串
  11. str = str.Replace("a", "b");
  12. Console.WriteLine(str);
  13. Console.WriteLine("------------------------------------");
  14. //3.Split()在出现给定字符的地方,把字符串拆分称一个字符串数组
  15. string[] sArray = str.Split(',');
  16. foreach (string i in sArray)
  17. Console.WriteLine(i.ToString());
  18. Console.WriteLine("------------------------------------");
  19. //4.SubString()在字符串中检索给定位置的子字符串,相当于保留的是该索引往后的字符串
  20. Console.WriteLine(str.Substring(10));
  21. Console.WriteLine("-------------------------------------");
  22. //5.ToLower()把字符串转换成小写形式
  23. Console.WriteLine(str.ToLower());
  24. Console.WriteLine("--------------------------------------");
  25. //6.ToUpper(把字符串转换成大写形式
  26. Console.WriteLine(str.ToUpper());
  27. Console.WriteLine("--------------------------------------");
  28. //7. Trim()删除首尾的空白
  29. Console.WriteLine(str.Trim());
  30. Console.WriteLine("--------------------------------------");
  31. //8.Concat()方法,合并字符串
  32. string con = string.Concat("123", "abc", 1233);
  33. Console.WriteLine(con);
  34. Console.WriteLine("---------------------------------------");
  35. //9.CopyTo()方法,把字符串中指定的字符复制到一个数组中
  36. char[] arr = { 'I', 'n', 'c', 'l', 'u', 'd', 'H', 'e', 'l', 'p' };
  37. str.CopyTo(1, arr, 0, 6);
  38. foreach(char i in arr)
  39. {
  40. Console.Write(i);
  41. }
  42. Console.WriteLine();
  43. Console.WriteLine("---------------------------------------");
  44. //10.Format()方法,格式化字符串
  45. Console.WriteLine("{0}+{1}", 1, 2);
  46. Console.WriteLine("{0:c}", 1);
  47. Console.WriteLine(string.Format("{0}+{1}", 1, 2));
  48. Console.WriteLine(string.Format("{0:c}", 1));//结论string.Format可以省略
  49. Console.WriteLine("---------------------------------------");
  50. //11.IndexOf()方法,取得字符串第一次出现某个给定字符串或者字符的位置
  51. Console.WriteLine(str);
  52. Console.WriteLine(str.IndexOf('b'));
  53. Console.WriteLine(str.IndexOf('a'));//如果没有找到就返回-1
  54. Console.WriteLine("----------------------------------------");
  55. //12.IndexOfAny()方法
  56. char[] cd = { 'c','b'};
  57. Console.WriteLine(str.IndexOfAny(cd));//该方法是只要数组里面有一个元素在字符串
  58. 里面就能返回对应的值,当两个都在的时候就返回最小的那个
  59. Console.WriteLine("-----------------------------------------");
  60. //13.Insert()把一个字符串实例插入到另一个字符串实例的制定索引处
  61. Console.WriteLine(str.Insert(3, "1234564879"));
  62. Console.WriteLine("------------------------------------------");
  63. //14.Join()合并字符串数组,创建一个新字符串
  64. char[] vs = { 'q', 'w', 'r', 'e' };
  65. Console.WriteLine(string.Join("",vs));

4.StringBuilder类

三种不同的初始化方式

 

  1. StringBuilder sb = new StringBuilder("123456");
  2. //增加
  3. sb.Append("abc");
  4. Console.WriteLine(sb);
  5. //插入,是在索引的前面插入
  6. sb.Insert(3, "g");
  7. Console.WriteLine(sb);
  8. //移除,第一个是要移除的位置,第二个变量是要移除多少个
  9. sb.Remove(3,5);
  10. Console.WriteLine(sb);
  11. //替换
  12. sb.Replace("2", " love ");
  13. Console.WriteLine(sb);

 

string创建的字符串和stringbuilder创建的字符串区别不同在于,stringbuilder创建的字符串可以进行修改,可以这样去想,string的添加字符串,其实是在静态存储区新开辟了一个区域来存储,而stringbuilder是一个类似字符串数组的形式,可以进行增删改查

5.正则表达式

什么是正则表达式

        正则表达式是使用一种数学算法来解决计算机程序中的文本检索,匹配等问题,正则表达式语言是一种专门用于字符串处理的语言

        1.检索:通过正则表达式,从字符串中获取想要的部分

        2.匹配:判断给定的字符串是否符合正则表达式的过滤逻辑

正则表达式的组成

        正则表达式是由普通字符以及特殊字符(元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串

  1. static void Main(string[] args)
  2. {
  3. string str1 = "123456f";
  4. string str2 = "abcdef";
  5. string str3 = "abc1def";
  6. Console.WriteLine(Regex.IsMatch(str1, @""));//@字符让特殊字符失效
  7. Console.WriteLine(Regex.IsMatch(str1, @"\d"));
  8. Console.WriteLine(Regex.IsMatch(str1, @"\d*"));
  9. Console.WriteLine(Regex.IsMatch(str3, @"11*"));
  10. Console.WriteLine(Regex.IsMatch(str2, @"\d"));//\d代表查询该字符串里面是否存在一个数字,*代表有0个或多个数字
  11. //^规定整个字符串以什么开头
  12. Console.WriteLine(Regex.IsMatch(str1, @"^1"));
  13. Console.WriteLine(Regex.IsMatch(str1, @"^2"));
  14. //$匹配结尾
  15. Console.WriteLine(Regex.IsMatch(str1, @"f$"));
  16. Console.WriteLine(Regex.IsMatch(str1, @"2$"));
  17. string str4 = "456123987";
  18. Console.WriteLine(Regex.IsMatch(str4, @"^\d*$"));
  19. string str5 = "";
  20. Console.WriteLine(Regex.IsMatch(str5, @"^\d$")&& Regex.IsMatch(str5, @"^\d*$"));
  21. // \w 大小写字母 0-9 _ 补集\W
  22. string str6 = "4af_d55";
  23. Console.WriteLine(Regex.IsMatch(str6, @"^\w*$"));
  24. //[]这个里面的任意字符出现就符合条件
  25. Console.WriteLine(Regex.IsMatch("abcdf", @"[fghj]"));
  26. Console.WriteLine(Regex.IsMatch("abdf", @"[c-j]"));//这个可以不区分大小写
  27. Console.WriteLine(Regex.IsMatch("、", @"[^c-j]"));//这个时候的^就代表了除了c-j的其他元素
  28. //是否是一个合法命名方法的正则表达式
  29. string str7 = "8dthfjJhf";
  30. string str8 = "dhfjahf";
  31. Console.WriteLine(Regex.IsMatch(str7, @"^\w*$")&& Regex.IsMatch(str7, @"^[^\d]"));
  32. Console.WriteLine(Regex.IsMatch(str8, @"^\w*$")&& Regex.IsMatch(str8, @"^[^\d]"));
  33. Console.WriteLine(Regex.IsMatch(str8, @"^[a-zA-z_]\w*$"));
  34. Console.WriteLine(Regex.IsMatch(str8, @"^\w*$"));
  35. //字符串的替换 .Replace()
  36. string str9 = "abc1d1f814u21s2i";
  37. Console.WriteLine(Regex.Replace(str9, @"[0-9]", "*"));
  38. //判断位数,通过{}来限制出现的次数
  39. string re = @"^\d{5,12}$";
  40. Console.WriteLine(Regex.IsMatch("456",re));
  41. Console.WriteLine(Regex.IsMatch("4e56",re));
  42. Console.WriteLine(Regex.IsMatch("45654665645645645654", re));
  43. Console.WriteLine(Regex.IsMatch("2802249004", re));
  44. Console.WriteLine(Regex.IsMatch("28022494", re));
  45. }
  46. }

择一匹配

将两个匹配条件进行逻辑,“或|”运算 

  1. Console.WriteLine(Regex.IsMatch("2", @"\d|a"));
  2. Console.WriteLine(Regex.IsMatch("a", @"\d|a"));
  3. Console.WriteLine(Regex.IsMatch("%", @"\d|a"));

             //重复单个字符
            Console.WriteLine(Regex.IsMatch("aa", @"a{2}"));
            Console.WriteLine(Regex.IsMatch("aac", @"a{2}"));
            Console.WriteLine(Regex.IsMatch("abab", @"ab{2}"));
            Console.WriteLine(Regex.IsMatch("abab", @"(ab){2}"));//()代表进行分组

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/article/detail/56507
推荐阅读
  

闽ICP备14008679号