C# 正则表达式中的顺序环视和逆序环视

  • Post author:
  • Post category:其他


环视结构

不匹配

任何

字符



只匹配

文本中的特定

位置


  • 顺序环视

    :从左向右查看文本,尝试匹配子表达式,如果能够匹配则返回匹配成功信息。顺序环视使用「

    (?=…)

    来标识」,例如「 (?=\d) 」,它表示如果当前

    位置





    边字符是数字,则匹配成功。

  • 逆序环视

    :从右向左查看文本,尝试匹配子表达式,如果能够匹配则返回匹配成功信息。逆序环视使用「

    (?<=…)

    来标识」,例如「 (?<=\d) 」,它表示如果当前

    位置





    边字符是数字,则匹配成功。

环视不会”占用”字符位置的,可以理解为 『它占用的位置信息,而不是位置上的字符』

利用环视,解决数字中按位插入逗号 。例如:1234567 在有些地方需要展示为:1,234,567

string str = "123456789";
Regex reg = new Regex(@"(?<=\d)(?=(\d\d\d)+$)");
string str2 = reg.Replace(str, ",");
Console.WriteLine(str2);    //输出:123,456,789
Console.ReadKey();

转载于:https://www.cnblogs.com/zhaoshujie/p/9718118.html