正则表达式复制组

时间:2016-09-25 18:41:07

标签: regex

我有一个正则表达式:

\*777\*[0-9]{10,}\*\d+\*(5|10|20|25|50|100)\*\d+#

这就是我迄今为止所拥有的。

它可以处理输入:* 777 * 9283928839 * 89 * 5 * 9090#。

格式如下:*777*phone*Qty*Item Code*pin#

问题是某些时候输入会像这样:

*777*phone*Qty*Item Code*Qty*Item Code*Qty*Item Code*pin#

它将在Qty *项目代码重复。但是Item代码应该是这些5,10,20,25,50,100

之一

我在制作正则表达式检查Qty *项目代码时感到困惑。

有人可以提示吗?

感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用以下内容:

\*777\*[0-9]{10,}\*(\d+\*(5|10|20|25|50|100)\*)+\d+#

说明

重复的部分似乎是这样的:

 \d+\*(5|10|20|25|50|100)\*

如果将其括在括号中并在其后添加+,它将告诉正则表达式匹配括号中的内容一次或多次:

(\d+\*(5|10|20|25|50|100)\*)+