字符串匹配提取正则表达式用法
作者 : Jacky 发布于 2024-09-10 18:22:17 浏览 250 次

用法实例

IsMatch 当前扩展方法 主要是 当前字符串是否匹配上正则表达式,比如,匹配当前字符串是否是QQ号码,代码如下:

if("7092734".IsMatch(@"^\d{5-11}$"))
    Console.WriteLine("是QQ号码格式.");
else
    Console.WriteLine("非QQ号码格式.");

输出结果为:是QQ号码格式。

因为 字符串 “7092734”确实是QQ号码。

IsNotMatch 当前方法其实就是 !IsMatch,用法和IsMatch用法一样。

Match 当前扩展方法返回的是Match,使用指定的匹配选项在输入字符串中搜索指定的正则表达式的第一个匹配项。

Matches 当前扩展方法返回的是使用指定的匹配选项在指定的输入字符串中搜索指定的正则表达式的所有匹配项。

这三个方法是最原始最底层的方法,其它扩展都基于当前三个方法中的一个或两个来实现的。

GetMatch 扩展方法返回结果是:提取符合模式的数据所匹配的第一个匹配项所匹配的第一项或a组的数据

GetPatterns 扩展方法返回结果是:提取符合模式的数据所有匹配的第一项数据或a组数据

GetMatchs 扩展方法返回结果是:提取符合模式的数据所匹配的第一项中所有组数据

GetMatches 扩展方法返回结果是:提取符合模式的数据所有匹配项或所有组数据

提取的数据量对比:GetMatch < GetMatchs < GetPatterns < GetMatches

ReplacePattern 扩展方法用途是 使用 正则达式 来替换数据

下边通过实例来讲解这几个方法的使用及返回结果的区别:

var a = "abc4d5e6hh5654".GetMatch(@"\d+");
a的值为:"4";
var b = "abc4d5e6hh5654".GetPatterns(@"\d+");
b的值为:["4","5","6","5654"];
var c = "abc4d5e6hh5654".GetMatchs(@"(?<a>[a-z]+)(?<b>\d+)");
c的值为:{{"a","abc"},{"b","4"}};
var d = "abc4d5e6hh5654".GetMatches(@"(?<a>[a-z]+)(?<b>\d+)");
d的值为:[{{"a","abc"},{"b","4"}},{{"a","d"},{"b","5"}},{{"a","e"},{"b","6"}},{{"a","hh"},{"b","5654"}}]
var g = "a6b9c53".ReplacePattern(@"\d+","g");
g的值为:"agbgcg";
var h = "a6b7c56".RemovePattern(@"\d+");
h的值为:"abc";
var i = "a1b2c3".ReplacePattern(@"\d+",m=>{
   var a = a.Groups["a"].Value;
    if(a == "1")return "a1";
    else return "a2";
});
i的值为:"aa1ba2ca2";
所有评论(0)