求解释个正则表达式
在看过客的正则笔记。有些不懂,请大家帮忙解释下。谢谢
我的问题是,需求2:验证字符串中第一个出现的连续4个数字是否有重复,有重复为True,无重复为False。
这条正则 不知道怎么理解
需求1:验证字符串中任意位置出现的连续四个数字在整个字符串中是否有重复,有重复为True,无重复为False。
string[] test = new string[] { "1985aaa1985bb", "bcae1958fiefadf1955fef", "atijc1944cvkd", "df2564isdjfef2564d", "abc1234def5678ghi5678jkl" };
Regex reg = new Regex(@"(\d{4})(?:(?!\1).)*\1");
foreach (string s in test)
{
richTextBox2.Text += "源字符串: " + s.PadRight(25, ' ') + "验证结果: " + reg.IsMatch(s) + "\n";
}
/*--------输出--------
源字符串: 1985aaa1985bb 验证结果: True
源字符串: bcae1958fiefadf1955fef 验证结果: False
源字符串: atijc1944cvkd 验证结果: False
源字符串: df2564isdjfef2564d 验证结果: True
源字符串: abc1234def5678ghi5678jkl 验证结果: True
*/
需求1 Regex reg = new Regex(@"(\d{4})(?:(?!\1).)*\1");
我的理解:(\d{4})4个连续的数字。(?:(?!\1).)*\1") 非捕获组 和顺序否定环视,作用就是取4个连续数字 后面的字符
\1则是反向引用,目的是取 相同的4个数字
不知道说的 对不对。。。
我的问题是,需求2:验证字符串中第一个出现的连续4个数字是否有重复,有重复为True,无重复为False。
Regex reg = new Regex(@"^(?:(?!\d{4}).)*(\d{4})(?:(?!\1).)*\1");这条正则 不知道怎么理解
...全文
相关推荐
高级表格求间隔
子程序1,读入TXT数据,寻找已知文本间隔
正则表达式全部符号解释
NULL 博文链接:https://taupo.iteye.com/blog/457474
正则表达式下全部符号解释说明
字符 描述 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,’n’ 匹配字符 “n”。’\n’ 匹配一个换行符。序列 ‘\\’ 匹配 “\” 而 “\(” 则匹配 “(“。 ^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 ‘\n’ 或 ‘\r’ 之后的位置。 $ 匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 ‘\n’ 或 ‘\r’ 之前的位置。 * 匹配前面的子表达式零次或多次。例如,zo* 能匹配 “z” 以及 “zoo”。
正则表达式 详细 解释
正则表达式详解正则表达式详解正则表达式详解正则表达式详解
正则表达式之全部符号解释
正则表达式之全部符号解释


