正则表达式,匹配一个范围的值用分号隔开,也可以是单独的一个值

问题描述

正则表达式,匹配一个范围的值用分号隔开,也可以是单独的一个值

匹配1-31的值,可以是1,2,3,4,5 还可以是1 这样的类型 输入的值要在1到31之间;
比如输入:1,2,3,31 返回true 输入1,2,32返回false

输入2返回true 输入32返回false

解决方案

void Main()
{
    var arry=new string[]{"1,12,3,31",
                        "1",
                        "1,12,32",
                        "2",
                        "33",};
    var reg=new Regex(@"^(([1-9]|[12]d|3[01]),)*([1-9]|[12]d|3[01])$");
    foreach(var item in arry)
         Console.WriteLine("{0} -- {1}",item,reg.IsMatch(item));

    /*
    1,12,3,31 -- True
    1 -- True
    1,12,32 -- False
    2 -- True
    33 -- False
    */
}

解决方案二:

<script>
var rx = /^([1-9]|[1-2]d|30|31)(,([1-9]|[1-2]d|30|31))*$/;

document.write(rx.test("1,2,3,31")  + '<br>');
document.write(rx.test("1,0,3,31")  + '<br>');

document.write(rx.test("1,2,3,33") + '<br>');
document.write(rx.test("1,2,3,23") + '<br>');

解决方案三:

(([1-2]d|30|31|4-9),)*(([1-2]d|30|31|4-9))

解决方案四:

void Main()
{
    var arry=new string[]{"1,2,3,31",
                        "1",
                        "1,12,32",
                        "2",
                        "32",};
    var reg=new Regex(@"^(([1-9]|(2d)|(3[01])),)*([1-9]|(2d)|(3[01]))$");
    foreach(var item in arry)
         Console.WriteLine("{0} -- {1}",item,reg.IsMatch(item));

    /*
    1,2,3,31 -- True
    1 -- True
    1,12,32 -- False
    2 -- True
    32 -- False
    */
}

解决方案五:

楼上的那些都回答了,基本都是一样的做法,
^(([1-9]|[12]d|3[01]),)*([1-9]|[12]d|3[01])$

^([1-9]|[1-2]d|30|31)(,([1-9]|[1-2]d|30|31))*$
都可以的

时间: 2024-08-31 23:38:48

正则表达式,匹配一个范围的值用分号隔开,也可以是单独的一个值的相关文章

正则表达式 匹配至少有一个非空白字符并且不超过指定长度_正则表达式

chinmo 逆向思维解决方案 复制代码 代码如下: <script type="text/javascript"> /** * 至少有一个非空白字符并且不超过6个字符的正则表达式 * * 作者:chinmo * 整理:http://www.CodeBit.cn * 来源:http://topic.csdn.net/u/20090207/18/ffa003ed-ecd4-40e0-b81f-36aa1fe46d85.html#r_55136904 */ var patter

perl-如何用正则表达式匹配一个域名

问题描述 如何用正则表达式匹配一个域名 我在做一个站内搜索引擎 现在在匹配上出现问题了 比如说 我做的引擎在淘宝上 我想把淘宝上所有的***.taobao.com以及***.taobao.com/***的链接全部得到,需要一个正则表达式把例如www.baidu.com的链接屏蔽掉 急求 以前没接触过正则表达式 解决方案 w+.taobao.com(/S+)?

正则表达式匹配邮箱

本文首写于个人有道云笔记: http://note.youdao.com/share/?id=6b2b0063b7b9963959fca3750b931baa&type=note  java.util.regex.PatternSyntaxException: Illegal character range near index 24 [a-zA-Z0-9]+[a-zA-Z0-9_-.]*@([a-zA-Z0-9_-]+.)+[a-zA-Z_-]+                        

leetcode 10 Regular Expression Matching(简单正则表达式匹配)

最近代码写的少了,而leetcode一直想做一个python,c/c++解题报告的专题,c/c++一直是我非常喜欢的,c语言编程练习的重要性体现在linux内核编程以及一些大公司算法上机的要求,python主要为了后序转型数据分析和机器学习,所以今天来做一个难度为hard 的简单正则表达式匹配. 做了很多leetcode题目,我们来总结一下套路: 首先一般是检查输入参数是否正确,然后是处理算法的特殊情况,之后就是实现逻辑,最后就是返回值. 当编程成为一种解决问题的习惯,我们就成为了一名纯粹的程序

实用正则表达式匹配和替换大全_正则表达式

正则表达式非常有用,查找.匹配.处理字符串.替换和转换字符串,输入输出等.而且各种语言都支持,例如.NET正则库,JDK正则包, Perl, JavaScript等各种脚本语言都支持正则表达式.下面整理一些常用的正则表达式. 字符 描述 \ 将下一个字符标记为一个特殊字符.或一个原义字符.或一个 向后引用.或一个八进制转义符.例如,'n' 匹配字符 "n".'\n' 匹配一个换行符.序列 '\\' 匹配 "\" 而 "\(" 则匹配 "

正则表达式匹配,替换,查找_正则表达式

上篇文章给大家介绍了Java正则表达式匹配,替换,查找,切割的方法,接下来,通过本篇文章给大家介绍js 正则匹配.查找与替换,具体内容请看下文. js 正则匹配.查找与替换 RegExp对象RegExp对象表示正则表达式,它是对字符串执行模式匹配的强大工具.直接量语法/pattern/attributes创建RegExp对象的语法:newRegExp(pattern,attributes);参数参数patter... RegExp 对象 RegExp 对象表示正则表达式,它是对字符串执行模式匹配

PowerShell中使用正则表达式匹配字符串实例_PowerShell

本文介绍PowerShell中使用match操作符,配合正则表达式从字符串提取指定的内容. 使用正则表达式,除了可以确定字符串是否匹配某一个正则表达式规则之外,另一个很重要的应用就是从字符串中提取出指定的内容.什么意思呢,举个例子,一个字符串中有出现连续的三个数字,我们想很方便的把这三个数字提取出来,那么就可以用正则表达式. 复制代码 代码如下: PS C:\Users\Hong> $str="abc123abc" PS C:\Users\Hong> $pattern=&q

正则表达式匹配,替换,查找

上篇文章给大家介绍了Java正则表达式匹配,替换,查找,切割的方法,接下来,通过本篇文章给大家介绍js 正则匹配.查找与替换,具体内容请看下文. js 正则匹配.查找与替换 RegExp对象RegExp对象表示正则表达式,它是对字符串执行模式匹配的强大工具.直接量语法/pattern/attributes创建RegExp对象的语法:newRegExp(pattern,attributes);参数参数patter... RegExp 对象 RegExp 对象表示正则表达式,它是对字符串执行模式匹配

perl正则表达式匹配问题

问题描述 perl正则表达式匹配问题 10C 本人小白看不懂前辈写的perl正则表达式 m/=$/ 和 m/[=]/区别,这个要匹配的是哪两种情况 解决方案 后面的表达式是不是不完整 解决方案二: 正则表达式匹配问题perl正则表达式匹配正则表达式之匹配顺序问题 解决方案三: 本人小白看不懂前辈写的perl正则表达式 m/=$/ 和 m/[=]/区别,这个要匹配的是哪两种情况 前一个是匹配一个=号结尾的行,例如 abcdkjalsjfajsflajsfl=而后一个是匹配文本行中 包含 = 号的,