常见的正则表达式提取功能如下:
目录
目录
一、常见写法
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 |