regex - 星期几/月份范围内的较短正则表达式
问题描述
我需要一个正则表达式以两种格式匹配星期几:正常方式,如“mon”、“fri”等,但我还需要在同一个正则表达式中用于范围类型的格式,如“mon-fri”
几个月相同:“jan”、“feb”、“jan-dec”
我有这个工作正则表达式:
^((jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)|((jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)-(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)))$
但它很大,不确定是否理想。
解决方案
好吧,不幸的是,您没有列出您的语言,所以我假设一切正常。
(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)(?:-(?1))?
在捕获组中列出您的月份,然后使用 递归相同的子模式(?1)
,并将其与破折号一起设为可选(?:-...)?
推荐阅读
- vue.js - 是否可以将参数传递给用于类和样式绑定的计算属性?
- php - $_FILES["imagefile"]["name"] 返回名称但 $_FILES["imagefile"]["tmp_name"] 返回空值?
- javascript - Meteor 如何快速创建新的 MongoDB 集合?
- json - 使用 Power BI 自定义形状图
- angular - 自定义验证器表单控件值即使在删除字段后仍保留先前添加的值 - Angular
- php - 使用 PHP 使用 assoc 数组中的按钮名称过滤表
- javascript - 为什么nuxt生成这么慢?
- android - 赋值作为jetpack compose中的参数
- linux - 如何散列 csv 文件中的特定列 | linux |
- c++ - 问:访问纯数据 dll 文件中数据的正确方法