正则表达式结束时可选

时间:2014-07-14 17:49:59

标签: regex

伙计们,我有以下数据:

有效数据:

08902-00243
08902-00243-1
08902-00243-12

无效数据:

08902-002
cat
08902-00243-844
08902-0024A-
08902-0024A-45
08902-00243-    

我正在尝试创建一个正则表达式来验证上述数据:

\d{5}-\d{5}-\d{2}?

但是我不能让可选(?)工作。

任何帮助都将不胜感激。

感谢。

3 个答案:

答案 0 :(得分:1)

您需要添加-,并且还有一个范围可以说明最后一组中的1位数。

echo "08902-00243-12" | egrep -o "\d{5}-\d{5}(-\d{1,2})?$"

答案 1 :(得分:0)

您需要将最后一个组合到可选项中: \d{5}-\d{5}(-\d{1,2})?

答案 2 :(得分:0)

尝试以下正则表达式

^(\d{5}-\d{5}(-\d\d?)?)$

Online demo