正则表达式,^和$到底怎么用?

秋的红果实 2016-02-27 11:14:36
从昨天那个问题引发的疑问,用([1-9]\d*)|^((([1-9]\d*)|0)\.([1-9]|\d[1-9]))$匹配一个正整数,或一个小数位最多2位的数。当然一位大侠给出了更简单写法。
我大致思路:
([1-9]\d*)匹配一个整数,不用^和$
^((([1-9]\d*)|0)\.([1-9]|\d[1-9]))$匹配小数,必须要加^和$

对^和$理解不够深刻,请根据上面实例,解释下,他们两,到底怎么用?
...全文
23970 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
veeson1024 2016-11-11
  • 打赏
  • 举报
回复
引用 1 楼 fei2yun 的回复:
起始字符和结束字符,有的时候代表匹配整个字符串 比如字符串 str="1a2bbbbb1"; str1="aa2bbbbb1"; 如果只是筛选的a2b,[a-z]\d[a-z]就可以了 如果要整个字符串都要匹配,就会用到^$,比如说^\d[A-Za-z]\d\w+ 就只能匹配str
即使不加^也能匹配str,请问这个应该怎么解释?
  • 打赏
  • 举报
回复
找下正则表达式教程,默认代表起始和结束位置,^在[]内时表示非
xuzuning 2016-02-27
  • 打赏
  • 举报
回复
^ 表示待匹配串的开始位置 $ 表示待匹配串的结束位置
秋的红果实 2016-02-27
  • 打赏
  • 举报
回复
明白了,都加了,匹配全部,不加可以匹配出子串 感谢几位
  • 打赏
  • 举报
回复
|的优先级高于^$,如果你要保证正确性,那么应该用小括号将^$的内容包含起来
秋的红果实 2016-02-27
  • 打赏
  • 举报
回复
我的用途是为一个textbox的输入做验证,不符合要求的不让提交(webForm)
秋的红果实 2016-02-27
  • 打赏
  • 举报
回复
自己顶一下。 请大家看清楚我的问题,解释下,我的那种写法,为什么前面的不加^和$可以,后面就必须要加 ([1-9]\d*)后面是|,或者后面的,怎么后面的不加就不行

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧