【问题标题】:Multi-part Regular Expression [duplicate]多部分正则表达式[重复]
【发布时间】:2020-01-04 17:59:41
【问题描述】:

我需要将非必需的文本框限制为仅限数字 (0-9),分隔符为“;”。模式是组的长度可以是 4 或 5,并且可以重复 n 次。一组中小于 4 的任何内容均无效。在 4 或 5 之后,我需要检查是否存在分隔符“;”。这种模式可以重复 n 次。我已经尝试过变体,但这似乎不起作用。一些简单的开始,比如

[0-9]{4,5};+

无效,因为我不需要仅 1 个数字分组的分隔符。

接下来我尝试了

^[0-9]{4,5}|[0-9]{4,4};|[0-9]{5,5};$

但这不起作用,因为之前存在四位数字(如 1111)或五位数字 11111 会在出错之前给出一个匹配项 例如“11111;j” 正则表达式中是否有方法来验证

1111
11111
1111;1111
11111;1111
11111;11111

但抓住

111
111;
1111;1
11111;1
abc

以重复的方式?

【问题讨论】:

  • 语言/工具是什么?
  • 不清楚需要什么。缺乏好的例子。

标签: regex expression


【解决方案1】:

这验证了您的示例。

^[0-9]{4,5}(;[0-9]{4,5})?$

Try it

不清楚您所说的“以重复的方式”是什么意思。如果你也想验证这个

1111;11111;11111;1111;11111

你可以使用这个正则表达式

^[0-9]{4,5}(;[0-9]{4,5})*$

Try it

【讨论】:

  • 你的假设是正确的。我必须说明没有输入任何内容,一个 4-5 位数的条目或长度不定的 4 或 5 位并用分号分隔的条目。
猜你喜欢
  • 1970-01-01
  • 2013-07-20
  • 1970-01-01
  • 1970-01-01
  • 2018-08-24
  • 2017-04-19
  • 1970-01-01
  • 2019-03-23
  • 2020-06-07
相关资源
最近更新 更多