C#基础:使用正则表达式

常见的正则表达式提取功能如下:

目录

目录

目录

一、常见写法

二、小结

1.部分字符需转义

2.匹配后缀名

3.匹配快捷键(重要)

4.正向断言


一、常见写法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;

namespace ConsoleApp1
{

        internal class Program
        {
            static void Main(string[] args)
            {
                List<string> list = new List<string> { { "【A】数值" },{ "【B】数值很大" } ,{ "123"}, { "【C】数值异常" } };
                
                string pattern = @"【(.*?)】";// 正则表达式模式,匹配【】中的内容

                foreach (string item in list)
                {
                    // 使用正则表达式匹配
                    MatchCollection matches = Regex.Matches(item, pattern);

                    if (matches.Count > 0)//如果成功匹配到了
                    {
                        // 打印匹配结果
                        foreach (Match match in matches)
                        {
                            // match.Groups[0].Value 匹配到的内容,包括【】
                            // match.Groups[1].Value 匹配到的内容,不包括【】
                            Console.WriteLine(match.Groups[1].Value);//一般都是输出[0]
                        }
                    }
                    else
                    {
                        Console.WriteLine($"匹配不到:{item}");
                    }
                 }
            }
        }
    
}

二、小结

1.部分字符需转义

string pattern = @"\[Description\(""(.*?)""\)\]";//匹配[Description("业务经理")]的文字内容

【解析】需要转义的字符(转义的方法是在它们前面加一个\):

[] () /\   .*?+ | -

2.匹配后缀名

(.jpg|.jpeg)

3.匹配快捷键(重要)

【数字、字母、空格】

\d 匹配一个数字  \w匹配任意一个字母、数字或下划线   \s匹配一个空格

以上匹配模式加一个+,则可以匹配多个

【单词】

\bword\b   表示匹配整个单词word

4.特征匹配

public class GetLeaveDto

{

    /// <summary>

    /// 学生ID

    /// </summary>

    public string ID { get; set; }

    /// <summary>

    /// 性别,sex=1 男 sex=0 女

    /// </summary>      

    public int Sex { get; set; }

    /// <summary>

    /// 详细信息列表

    /// </summary>  

    public List<Details> list { get; set; }

}

【匹配所有字段】public\s+[\w?<>]+\s+(.*?)\s{

【匹配中文注释】[\u4e00-\u9fa5]+

【匹配所有注释】///\s*([\u4e00-\u9fa5|\w]+)

5.是否包含字符串

不包含hello字符串:^(?!.*hello).*$    =>返回全部
包含hello字符串:.*hello.*                 =>返回全部

三、匹配示例

内容        

表达式打印

"air_h_2024_5099a_app"

"air_h_2024_5099a_src"

"123456789"

air_h_\w+_\w+_\w+

match.Groups[0].Value

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值