正则表达式在周/月范围内的较短

时间:2019-07-10 17:27:31

标签: 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)))$

但是它很大,不确定是否理想。

2 个答案:

答案 0 :(得分:1)

好吧,很遗憾,您没有列出您的语言,所以我认为一切正常。

(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)(?:-(?1))?

在捕获组中列出您的月份,然后使用(?1)递归相同的子模式,并将其与破折号(?:-...)?一起设置为可选

Autoptimize

答案 1 :(得分:0)

^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)(-(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec))?$