Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 什么';那^([1-9]{1,2},){4}[1-9]{1,2}$和([1-9]{1,2},){4}[1-9]{1,2}之间的区别是什么?_C#_Regex - Fatal编程技术网

C# 什么';那^([1-9]{1,2},){4}[1-9]{1,2}$和([1-9]{1,2},){4}[1-9]{1,2}之间的区别是什么?

C# 什么';那^([1-9]{1,2},){4}[1-9]{1,2}$和([1-9]{1,2},){4}[1-9]{1,2}之间的区别是什么?,c#,regex,C#,Regex,如果我使用([1-9]{1,2},){4}[1-9]{1,2}来匹配输入。 1,2,3,4,5,6,7,8,9将作为有效输入进行匹配 但是,如果我在开头加上^,在结尾加上$。表达式^([1-9]{1,2},){4}[1-9]{1,2}$将根据我的需要匹配1,2,3,4,5 我的问题是:^([1-9]{1,2},{4}[1-9]{1,2}$和([1-9]{1,2},){4}[1-9]{1,2}之间有什么区别?你知道,我只加了^和$ 您能解释一下为什么会出现这种差异吗?^表示匹配字符串的开头,$表示

如果我使用
([1-9]{1,2},){4}[1-9]{1,2}
来匹配输入。
1,2,3,4,5,6,7,8,9将作为有效输入进行匹配

但是,如果我在开头加上^,在结尾加上$。表达式
^([1-9]{1,2},){4}[1-9]{1,2}$
将根据我的需要匹配
1,2,3,4,5

我的问题是:
^([1-9]{1,2},{4}[1-9]{1,2}$
([1-9]{1,2},){4}[1-9]{1,2}
之间有什么区别?你知道,我只加了^$


您能解释一下为什么会出现这种差异吗?

^
表示匹配字符串的开头,
$
表示匹配字符串的结尾。这基本上意味着字符串必须与模式完全匹配,比较:

^foo$
使用
foo
作为正则表达式

试着把它和食物搭配起来。第一个将不匹配,因为我们没有到达
foo
部分之后的字符串末尾。

([1-9]{1,2},){4}[1-9]{1,2}
将匹配字符串中的任何位置,即:2,2abcd,35,54,67,23,04foobar将匹配

^([1-9]{1,2},){4}[1-9]{1,2}$
仅在整个字符串匹配时匹配。即:上述示例不匹配


^
匹配字符串的开头,
$
匹配字符串的结尾。

这是
^([1-9]{1,2},){4}[1-9]{1,2}$


这是
([1-9]{1,2},){4}[1-9]{1,2}

您可以看到这两个正则表达式之间的区别是,从字符串的
开始
到字符串的
结束
,第一个正则表达式强制匹配


这些图表是使用更新的。

@PeterAlfvin生成的。