数字之间可选字符的正则表达式

时间:2018-05-12 19:06:20

标签: swift regex regex-group nsregularexpression

我需要在数字之间验证包含下划线(_)的字符串。下划线字符是可选的。 只有条件,它应该在数字之间

<SearchBar>

我试过这个正则表达式

Valid     => 123
Valid     => 1_23
Valid     => 123_4567_89_312_575

Not valid => 123_
Not valid => _123
Not valid => 123__12   (Two consecutive underscore characters)
Not valid => _         (Number is mandatory)
Not valid => abc       (only numbers and _ should be present)

失败了。知道为什么吗?

PS: 要用快速语言实现这一点。 核心逻辑:下划线字符用作数字的分隔符。

2 个答案:

答案 0 :(得分:3)

简单,它应

^[0-9]+(_[0-9]+)*$

^\d+(_\d+)*$

这两个意味着从任何数字(<number>)开始,然后具有任何(零或更多)模式(_<number>)下划线和数字组合的数量。< / p>

反之亦然,

([0-9]+_)*[0-9]+

(\d+_)*\d+

这两个意味着从任何(零或更多)个数量的模式(<number>_)数字和下划线组合开始;然后有任何数字(<number>)。

答案 1 :(得分:2)

您可以使用以下表达式:

Message

enter image description here