在Apex中用逗号分隔数字的正则表达式

时间:2012-07-26 15:23:22

标签: regex oracle-apex

作为序言,我意识到正则表达式还有其他主题用逗号分隔的数字,但是当我尝试使用这些解决方案时,它们不起作用。

基本上,我正在尝试创建一个正则表达式来识别逗号分隔的数字(在这种情况下没有空格)。在尝试将其转换为实际的正则表达式语法之前,我意识到它可能应该像这样工作,其中'd'是数字,','是逗号,'+'是kleene plus:

((d+),)*(d+)

(d+)(,(d+))*

这是我在Apex验证中使用的代码,以确保某个字段是一个由逗号分隔的数字列表,没有空格(注意:我已经尝试了几个这样的变体无效,但只会发布一个) :

(\d+,)*(\d+)

由于某些原因,这不起作用,但它似乎是任何数字的正确语法1次或更多次后跟一个逗号,并且整个表达式可以重复0次或更多次,并且整个重复表达式应始终后跟至少1位数。

这个表达在实践中确实识别所有可接受的表格(例如:100或100,200等),但由于某种原因它也接受像

这样的答案
'100,200,'

'100,200,,'

'100,,200'

我很难过为什么这不会像之前给出的解决方案那样有效,这些解决方案看起来和我做的一样。感谢您提前提供任何帮助!

2 个答案:

答案 0 :(得分:4)

就是这样:

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

锚点^$会产生差异,因为它们会强制整个字符串(而不仅仅是一部分)与模式匹配

答案 1 :(得分:2)

您应该尝试这样的模式:

^(?:(\d+),)+(\d)+$