+ -
当前位置:首页 → 问答吧 → 正则表达式^$的用处

正则表达式^$的用处

时间:2011-12-15

来源:互联网

在我印象中^表示以某某某开始,$表示以某某结束,感觉^$不写在表达式的左右侧也没有什么影响。但是今天发现一个例子,想请教一下:
([0-9]|[1-9][0-9]|100) 验证整数0到100,不正确,比如25就通不过;
^([0-9]|[1-9][0-9]|100)$ 验证整数0到100,正确。
^$加上后到底有什么区别?
谢谢!

作者: zhu3151675   发布时间: 2011-12-15

元字符^(和6 在同一个键位上的符号)以及$和\b 有点类似,都匹配一个位置。^匹配你要用来
查找的字符串的开头,$匹配结尾。

作者: xiaopohai315   发布时间: 2011-12-15

^ 匹配字符串的开始
$ 匹配字符串的结束
多用于验证数据

([0-9]|[1-9][0-9]|100) 这多用于匹配数据
对于匹配25来举例,从第一位2开始匹配, [0-9]匹配成功,所以会返回2
  再从第二位4开始匹配, [0-9]匹配成功,所以会返回5
  后边的表达式根本没有进行匹配操作
当你把此表达式修改成这样时: ([0-9]+|[1-9][0-9]|100) 就可以匹配到25了 当然也就不满足你的初衷了

^([0-9]|[1-9][0-9]|100)$ 在验证25时:
首先 25是以0-9开头的 ,也是以0-9结束的,位数是2位
所以匹配成功

作者: q107770540   发布时间: 2011-12-15

引用 2 楼 q107770540 的回复:
^ 匹配字符串的开始
$ 匹配字符串的结束
多用于验证数据

([0-9]|[1-9][0-9]|100) 这多用于匹配数据
对于匹配25来举例,从第一位2开始匹配, [0-9]匹配成功,所以会返回2
再从第二位4开始匹配, [0-9]匹配成功,所以会返回5
后边的表达式根本没有进行匹配操作
当你把此表达式修改成这样时: ([0-9]+|[1-9][0-9]|100) 就可……

+1

作者: cainiao13579   发布时间: 2011-12-15

对于^$越来越糊涂了
表达式a
表达式^a$
有什么不同?
用在asp.net的RegularExpressionValidator控件里的效果是一样的?到底加上^$有什么区别呢?

作者: zhu3151675   发布时间: 2011-12-15

不会正则


路过

作者: songhongkai123   发布时间: 2011-12-15

引用 4 楼 zhu3151675 的回复:
对于^$越来越糊涂了
表达式a
表达式^a$
有什么不同?
用在asp.net的RegularExpressionValidator控件里的效果是一样的?到底加上^$有什么区别呢?


^a$ 只匹配字符串 a
a 匹配任何包含a的字符串 如 a, abc, kai, ca 等等

如果^pattern$能匹配成功的 pattern肯定能成功。反之不然。

作者: wackyboy   发布时间: 2011-12-15

引用 6 楼 wackyboy 的回复:
引用 4 楼 zhu3151675 的回复:
对于^$越来越糊涂了
表达式a
表达式^a$
有什么不同?
用在asp.net的RegularExpressionValidator控件里的效果是一样的?到底加上^$有什么区别呢?


^a$ 只匹配字符串 a
a 匹配任何包含a的字符串 如 a, abc, kai, ca 等等

如果^pattern$能匹配成功的 patter……

a 匹配任何包含a的字符串 如 a, abc, kai, ca 等等??????你确定?
我在asp.net的RegularExpressionValidator控件里试过了,表达式a只能匹配a,表达式^a$表达式也只能匹配a
我用的是vs2010

作者: zhu3151675   发布时间: 2011-12-15

我试了一下System.Text.RegularExpressions.Regex类
表达式a,可以匹配aa,abc等。
验证控件RegularExpressionValidator
表达式a,只能匹配a
这是为什么呢?
难道验证控件RegularExpressionValidator默认在表达式左右附加了^$这两个符号?
但是验证控件([0-9]|[1-9][0-9]|100)和^([0-9]|[1-9][0-9]|100)$为什么又是不一样的效果?

作者: zhu3151675   发布时间: 2011-12-15

引用 8 楼 zhu3151675 的回复:
我试了一下System.Text.RegularExpressions.Regex类
表达式a,可以匹配aa,abc等。
验证控件RegularExpressionValidator
表达式a,只能匹配a
这是为什么呢?
难道验证控件RegularExpressionValidator默认在表达式左右附加了^$这两个符号?
但是验证控件([0-9]|[1-9][0-9]|100)和^(……

验证控件是匹配整个字符串符不符合规则 类似于 默认在表达式左右附加了^$这两个符号

作者: wackyboy   发布时间: 2011-12-15

引用 9 楼 wackyboy 的回复:
引用 8 楼 zhu3151675 的回复:
我试了一下System.Text.RegularExpressions.Regex类
表达式a,可以匹配aa,abc等。
验证控件RegularExpressionValidator
表达式a,只能匹配a
这是为什么呢?
难道验证控件RegularExpressionValidator默认在表达式左右附加了^$这两个符号?
但是验证控件(……

有点儿没说清楚 你就理解成默认加^$就可以了 如果不是验证控件的话 结果就不一样了

作者: wackyboy   发布时间: 2011-12-15