整数和整数的正则表达式?
我试图从字符串中检测所有整数和整数(还有很多其他事情)。这是我当前正在使用的正则表达式:
整数: r"[0-9]+"
整数: r"[+,-]?[0-9]+"
这里是问题:
- 整个正则表达式也在检测负数,而我不能。我该如何解决?如果我在正则表达式开始前使用空格,那么我只会得到正数,但是在输出开始处会得到一个空格!
- 对于整数,我想使用格式检测正数,
+[0-9]
但将其存储而不带符号。 - 对于整数,我想存储用符号检测到的任何正整数,而不管其是否存在于原始字符串中。
现在几乎完成了:最后一件事,我有一个字符串,上面写着“ Add 10 and
-15”。我想将整数存储在列表中。我这样做是使用findall()。在存储数字时,可以将“ 10”存储为“ +10”
-
对于正整数,请使用
r"(?<![-.])\b[0-9]+\b(?!\.[0-9])"
说明:
(?<![-.]) # Assert that the previous character isn't a minus sign or a dot. \b # Anchor the match to the start of a number. [0-9]+ # Match a number. \b # Anchor the match to the end of the number. (?!\.[0-9]) # Assert that no decimal part follows.
对于有符号/无符号整数,请使用
r"[+-]?(?<!\.)\b[0-9]+\b(?!\.[0-9])"
单词边界
\b
对于确保整个数字匹配至关重要。