正则表达式转义字符

题目描述127.0.0.1为什么用[1-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}来表示,我表示看不懂这个,哪个大佬帮帮我

题目来源及自己的思路

相关代码

粘贴代码文本(请勿用截图)

你期待的结果是什么?实际看到的错误信息又是什么?

阅读 1.9k
3 个回答

[0-9]{1,3} 表示由 0-9 十个数字、1 - 3 位。剩下还用讲吗?

P.S. 其实这个表达式不严谨,因为 IP 只能是 0-255(首位是 1-255),而这个表达式虽然限定了位数,但没有限定最大值。正确的表达式应该是 ^((\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])$,原理见下图。

image.png

这个匹配实际是不对的,
比如127.07.07.07,也可以匹配上。

正则很简单,首先你要明白匹配内容的规则,明白了内容规则在,正则就容易读啦:
ipv4协议规定的ip规则由4组数组3个.组成xxx.xxx.xxx.xxx
每组都是0-255之间的数字,也就是一到三位数字喽。image.png

这个题意思明白就行了,内容有误,ipv4每组数字是0-255,不是0-999;

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题