REGEX 接受以逗号分隔的数字,但数字范围为 0-32767

标签 regex numbers expression range spaces

我需要编写一个正则表达式来接受这样的输入

23,456,22,1,32767

  1. 开头或结尾不允许使用逗号。
  2. 空格可以出现在逗号之前和/或逗号开头,例如: 23、45、56、67 等
  3. 每个数字的范围应为 0-32767。

目前我正在使用像这样的正则表达式[0-9]+(,[0-9]+)*

这允许仅用逗号分隔数字(根本不允许空格),并且不检查数字范围。

最佳答案

分两步完成可能是明智的。首先检查范围是否为0-99999:

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

然后使用通用编程语言将字符串解析为整数列表,并检查 x <= 32767对于每个整数 x。

关于REGEX 接受以逗号分隔的数字,但数字范围为 0-32767,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6261796/

相关文章:

python - pandas 使用正则表达式从文本中获取值

java - 正则表达式 - 如果模式匹配,则替换双引号之间的字符(逗号)

algorithm - 打印给定整数作为输入的所有唯一整数分区

c++ - 回文测试函数

javascript - 正则表达式 : Parse a sentence

r - 替换引用表达式中的已知变量

php - 检查 url 中是否至少有 1 个大写字母的正则表达式代码是什么? (php)

c# - 哪种数据结构(或类型)可用于定义数字的位数?

javascript - 为什么++var++ 不是合法的 Javascript 表达式?

regex -\p{L}、\p{Lu} 和\p{Ll} 的 Unicode 范围