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生成的。