c# 正则提取内容例子

224 阅读1分钟

 

分类代码/语法说明
捕获(exp)匹配exp,并捕获文本到自动命名的组里
(?<name>exp)匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp)
(?:exp)匹配exp,不捕获匹配的文本,也不给此分组分配组号
零宽断言(?=exp)匹配exp前面的位置
(?<=exp)匹配exp后面的位置
(?!exp)匹配后面跟的不是exp的位置
(?<!exp)匹配前面不是exp的位置
注释(?#comment)这种类型的分组不对正则表达式的处理产生任何影响,用于提供注释让人阅读

 

//提取node2中间的值

string input = @"
        <node1>0001</node1>
        <node2>lxw</node2>
        <node3>002</node3>
        <node4>003</node4>                   
    ";
Regex reg = new Regex(@"(?<=<node2>)(\d+)(?=</node2>)+");
var matches = reg.Matches(input);
string result = "";
foreach (var m in matches)
{
    result += m + ",";
}
result = result.TrimEnd(',');
//结果:lxw