regex - 正则表达式只允许数字、逗号和破折号

标签 regex asp.net-mvc data-annotations

我正在尝试提出一个数据注释正则表达式来匹配以下格式。

34

38-30

100,25-30

4-5,5,1-5

基本上表达式应该只允许 号码 , -(破折号) ,(逗号)以任何顺序

我尝试遵循但无法使其正常工作。

[RegularExpression(@"(0-9 .&'-,]+)", ErrorMessage ="Lot numbers are invalid.")]

最佳答案

我认为您的用例有一个 CSV 数字列表或数字范围(标识为数字后跟破折号后跟另一个数字)。我们可以使用以下正则表达式:

[0-9]+(?:-[0-9]+)?(,[0-9]+(?:-[0-9]+)?)*

此正则表达式匹配一个数字,后跟一个可选的破折号和另一个数字,然后是该数量,然后是逗号和另一个类似的术语,次数不限。

在下面的演示中,我在正则表达式的两侧添加了 anchor 。您是否需要这样做取决于您计划如何使用该模式。

Demo

关于regex - 正则表达式只允许数字、逗号和破折号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45450483/

相关文章:

c# - 即使属性已设置且有效,为什么 TryUpdateModel 仍返回 false?

c# - Powershell 二进制模块 - 参数验证

c# - DataTypeAttribute 验证是否在 MVC2 中工作?

asp.net-mvc - 操作过滤器中存储的实例状态不正确

asp.net-mvc - Azure Web应用程序和Web api服务(移动服务)架构全局分布

asp.net-mvc - 自定义 HTML 帮助程序,什么是 : this HtmlHelper html

regex - 输入元素上的模式属性允许空值?

python - xml 批量文件编辑器按数字递增

Python 正则表达式 : words between two delimiters - replace leading delimiters with punctuation, 但删除结尾的

java - 电子邮件提取器 Java 模式排除点之前的字符