2010-11-27 120 views
0

我需要接受以下输入regualr表达正则表达式为XX天,XX个月或XX年

1日

4天

15天

1月

12个月

1年

5年

这些数字可以有任意长度。有任何想法吗?

+0

为了什么目的?你想获得数字吗?你想强制执行特定的输入格式吗?字符串可以合并吗?请添加更多关于预期输入和输出的信息。 – Gordon 2010-11-27 09:39:17

回答

5

试试这个,

^(1 (Day|Month|Year)|[1-9][0-9]* (Days|Months|Years))$ 

它不会接受我的假设是无效的输入,如 “5日” 和 “04个月”

说明:

输入为“1 Day/Month/Year”,或者是1-9的数字,后跟任意数字的数字0-9,后跟一个空格,并且其中一个字符串“Days”“Months”或“Years”

+0

优雅的解决方案 – Nigel 2010-11-27 09:29:18

2
\d+\s+(Day|Month|Year)(s)? 
  • \ d +至少一个数字
  • \ S +至少一个空格字符
  • (日|月|年)日或一个月或一年
  • (S)?可选择以复数单位
+0

如果`^`和`$`不是我们想要的,我会在它的两边放一个`\ b`。 – tchrist 2010-11-27 13:50:07

相关问题