整数的Python正则表达式?

标签 python regex django django-forms

我正在学习正则表达式,我想在 Python 中使用正则表达式来仅定义整数 - 整数而不是小数。

我可以使用 \d 制作一个只允许数字的数字,但它也允许十进制数字,这是我不想要的:

price = TextField(_('Price'), [
    validators.Regexp('\d', message=_('This is not an integer number, please see the example and try again')),
    validators.Optional()]) 

如何将代码更改为允许整数?

最佳答案

正则表达式以字符为基础工作,\d 表示单个数字 0...9 而不是十进制数。

只匹配带符号的整数的正则表达式可以是例如

^[-+]?[0-9]+$

意义

  1. ^ - 字符串开始
  2. [-+]? - 可选的(这就是 ? 的意思)减号或加号
  3. [0-9]+ - 一位或多位数字(加号表示“一位或多位”,[0-9] 的另一种说法>\d)
  4. $ - 字符串结尾

注意:仅当您需要解析仅数字时,才可以将符号视为数字的一部分。对于处理表达式的更通用的解析器,最好将符号留在数字之外:像 3-2 这样的源流最终可能会被解析为两个整数的序列,而不是整数、运算符和另一个整数。我的经验是,负数可以通过在更高级别上不断折叠一元否定运算符来更好地处理。

关于整数的Python正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8586346/

相关文章:

python - Pandas 群体内的变量转移

python - 增强 mnist 数据集 tensorflow

django - DRF 嵌套序列化器支持空字段

python - 计算平均值并附加到新数组 numpy

python - Django admin 上 list_display 项目的自定义值

jquery - Jquery 验证正则表达式中的空格

java - 正则表达式查找任何字符串的单词中的最后一个字母

ruby - 如何使用 ruby​​ 正则表达式获取子字符串?

python - 如何整合 Django 和 Cygwin?

python - 在 Django 中使用 inspectdb 时出错