正则表达式之匹配数字范围
最近有个需求就是根据产品编号批量下架产品,需要下架日期为16-31号之间的产品,
比如编号为B201607280023匹配表达式如下:
^201607(1[6-9]|2[0-9]|3[0-1]).+
逻辑很简单,如果是必须是1或2或3开头,如果是1开头则后面范围为6-9,如果是2开头则为0-9,如果为3开头则为0-1,因为7月份到31号
同理,如果要匹配前半月的数据则是
^B201607(0[0-9]|1[1-5]).+
php正则表达式限制数字个数
如何写个正则表达式,只有4个数字才能匹配比如1234可以匹配,12345或者12数字个数不是4个的不能匹配?
\d{4}我试过不可以,12345超过5个数字的也匹配上了,不可以
^[0-9]{4}$可以,改变问题为什么\d{4}不行能??
\d{4} 这个意思其实是可以匹配至少4个连续的数字,就是说123肯定匹配不上,像1234,12345,1234abc这种,只要其中有4个数字连续的,都可以匹配上。如果想卡死只匹配四个数字,那么得加上开始和结束符 ^\d{4}$
正则表达式匹配1-255之间的正整数
$p = '/^(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|[1-9])$/';
for($i=1; $i<=260; $i++)
printf("%4d %d\n", $i, preg_match($p, $i));
楼大体上是对的,没有加上单词分隔符
测试数据
11 123 301 9 10 31 30 33
匹配出
11
123
30
1
9
10
31
30
33
可见这与预期不符,因为该正则把301拆成30与1了
正确如下
\b25[0-5]\b|\b2[0-4]\d\b|\b1\d\d\b|\b[1-9]\d\b|\b[1-9]\b
如果还是不懂的朋友建议查看这篇文章
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程