C#基础正则表达式

先简单总结下C#的字符串。C#字符串天生就有精神分裂(书中原话),既像值类型又是引用类型,更准确的说是可以像值类型一样去使用它,但是它是引用类型,是string类。C#string类提供了丰富的属性方法可以进行使用,除了我们都知道的Remove、Insert、count、Indexof、Replace、Split、Join(string类的静态方法)等,还有字符串大小比较的Equals、CompareTo、Compare等,但是在使用中要注意,string类的实例是不可改变的,它类似于const类型,所以每一个对字符串的操作只会产生其副本,不改变本来的字符串。因此,如果字符串的长度较大会造成性能较低,因而出现了stringBuilder类,对该类实例的操作会直接影响它的值,效率更高。

接下来说正则表达式,想要使用C#中的正则表达式,必须引用命名空间System.Text.RegularExpression

关键类和方法:

1.Regex类,其中有个静态方法是进行正则表达式匹配,Regex.Match()或者Regex.Matches()两者的区别是匹配第一个和匹配所有,参数为(string string1,string pattern),string1即为想进行匹配的字符串,pattern即为正则表达式的符号

2.Match类和MatchCollection类,分别存储单个匹配的结果和多次匹配的结果,对应着使用Match和Matches

关键限定符(正则表达式匹配符):

1.[a-z] [A-Z] [A-Za-z] [0-9]

2.本应是单反斜杠但是区别于转义符 :\\w表示所有字母 \\d所有数字 \\s空格 以上所有换成大写则是取相反意思

3.* ? . {n}(n为int)

namespace 正则表达式
{
    class Program
    {
        static void Main(string[] args)
        {
            string str1 = "This is a very nice work works";
            string regEx = "works?";
            //寻找work或者works
            if(Regex.IsMatch(str1, regEx))
            {
                //在str1中寻找regEx的结构
                MatchCollection matches = Regex.Matches(str1, regEx);
                foreach (Match item in matches)
                {
                    WriteLine(item.Value + " " + item.Index);
                    //输出捕获的字串的内容和找到该字串的第一个元素的位置
                }
            }
        }
    }
}
namespace 正则表达式
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] str1 = new string[] { "bad", "boy", "baad", "baaad", "bear", "bend" };
            string regEx = "ba{2}d";
            //必须要有两个a
            foreach (string word in str1)
            {
                if (Regex.IsMatch(word, regEx))
                {
                    WriteLine(word);
                }
            }
        }
    }
}

正则表达式就是基于一些特殊字符进行匹配,以上两个例子十分简单,但是正则表达式是可以组合成非常复杂的形式,甚至看起来像乱码。这里先有有一个基础的概念,以后遇到再去检索相关书籍即可使用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值