用逗号分隔的整数

时间:2010-05-21 23:43:45

标签: regex

用逗号分隔的整数的最佳正则表达式是什么?它还可以包含逗号之间的空格,并且不需要该字段,这意味着它可以为空白。

123,98549
43446

等。

4 个答案:

答案 0 :(得分:7)

这是一个非常基本的,可能适合你:

/^[\d\s,]*$/

只要它只包含数字,空格和逗号,它就会匹配任何字符串。这意味着“123 456”将通过,但我不知道这是否是一个问题。

/^\s*(\d+(\s*,\s*\d+)*)?\s*$/

这一个有以下结果:

""                true
"123"             true
"123, 456"        true
"123,456  , 789"  true
"123 456"         false
"   "             true
"  123   "        true
", 123 ,"         false

说明:

/^\s*(\d+(\s*,\s*\d+)*)?\s*$/
 1 2 3 4 5 6 7 8  9  a b c d

1. ^   Matches the start of the string
2. \s  Matches a space  * means any number of the previous thing
3. (   Opens a group
4. \d  Matches a number. + means one or more of the previous thing
5. (   Another group
6. \s* 0 or more spaces
7. ,   A comma
8. \s* 0 or more spaces
9. \d+ 1 or more numbers
a. *   0 or more of the previous thing. In this case, the group starting with #5
b. ?   Means 0 or 1 of the previous thing. This one is the group at #3
c. \s* 0 or more spaces
d. $   Matches the end of the string

答案 1 :(得分:2)

假设您需要一个整数列表:(\d+)

逗号和空格不应成为问题,因为您只需要遍历这些组。

答案 2 :(得分:1)

我不知道你对这个领域的意思

  

不是必需的,这意味着它可以   是空白的

除此之外,我认为这可行的

/^((\b)*[0-9]+(\b)*[,])*(\b)*[0-9]+(\b)$/

答案 3 :(得分:0)