Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 周/月范围内天数的较短正则表达式_Regex - Fatal编程技术网

Regex 周/月范围内天数的较短正则表达式

Regex 周/月范围内天数的较短正则表达式,regex,Regex,我需要一个正则表达式以两种格式匹配一周中的几天:正常方式,如“mon”、“fri”等,但我也需要相同的正则表达式来匹配一系列格式,如“mon-fri” 月份相同: “一月”、“二月” “一月至十二月” 我有一个工作正则表达式: (代码)码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码

我需要一个正则表达式以两种格式匹配一周中的几天:正常方式,如“mon”、“fri”等,但我也需要相同的正则表达式来匹配一系列格式,如“mon-fri”

月份相同: “一月”、“二月” “一月至十二月”

我有一个工作正则表达式:

(代码)码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码代码>


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

很遗憾,你没有列出你的语言,所以我想一切都会好起来

^(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)
递归相同的子模式,并将其与破折号
(?:-…)?
一起设置为可选


那么小吗???@Shubh它越短越好,谢谢!是的,我想要一个短一点的。他想要他现在的代码短一点。没有提到任何优化。一个单词边界
\b
将是一个简单的修复方法。啊,我只是注意到他有锚,所以这是对我的:)足够公平,没有注意到这一点。防止递归模式可能出现的兼容性问题的另一种可能性是将所有月份都包含在一个非捕获组中,该组以可选的
-
结尾,并允许1或2个匹配
(?:(jan |…| dec)-?){1,2}
。这听起来似乎不是使用正则表达式最好的方法。你想做什么?@AndyLester我在Joi验证器中使用它