【发布时间】:2013-05-22 08:42:14
【问题描述】:
我正在尝试从字符串中检测所有整数和整数(以及许多其他内容)。以下是我目前使用的正则表达式:
整数:r"[0-9]+"
整数:r"[+,-]?[0-9]+"
以下是问题:
- 整数正则表达式也在检测负数,这是我无法检测到的。我该如何解决这个问题?如果我在正则表达式开始之前使用空格,我只会得到正数,但我会在输出开始时得到一个空格!
- 对于整数,我想检测格式为
+[0-9]的正数,但不带符号存储它们。 - 对于整数,我想存储任何用符号检测到的正整数,无论它是否存在于原始字符串中。
现在差不多完成了: 最后一件事,我有一个字符串,上面写着“加 10 和 -15”。我想将整数存储在列表中。我这样做是使用 findall()。存储数字时,可以将“10”存储为“+10”
【问题讨论】:
-
“整数”和“正整数”不是一回事吗?我不明白你会如何区分它们。
-
整数和整数是一回事。正整数是自然数。
-
你想在字符串
"1.0 and 1e7"中匹配什么?两者都是数字(但被 Python 视为floats)。 -
@Cairnarvon 哦,对了。虽然这似乎与 OP 的用法不符(如问题 #2)
-
您的第三个愿望仅靠正则表达式是不可能实现的。正则表达式只能匹配字符串中已经存在的文本。