环视结构不匹配任何字符,只匹配文本中的特定位置。
- 顺序环视:从左向右查看文本,尝试匹配子表达式,如果能够匹配则返回匹配成功信息。顺序环视使用「 (?=...) 来标识」,例如「 (?=\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();