整数和整数的正则表达式?

发布于 2021-01-29 17:18:01

我试图从字符串中检测所有整数和整数(还有很多其他事情)。这是我当前正在使用的正则表达式:

整数: r"[0-9]+"

整数: r"[+,-]?[0-9]+"

这里是问题:

  1. 整个正则表达式也在检测负数,而我不能。我该如何解决?如果我在正则表达式开始前使用空格,那么我只会得到正数,但是在输出开始处会得到一个空格!
  2. 对于整数,我想使用格式检测正数,+[0-9]但将其存储而不带符号。
  3. 对于整数,我想存储用符号检测到的任何正整数,而不管其是否存在于原始字符串中。

现在几乎完成了:最后一件事,我有一个字符串,上面写着“ Add 10 and
-15”。我想将整数存储在列表中。我这样做是使用findall()。在存储数字时,可以将“ 10”存储为“ +10”

关注者
0
被浏览
155
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    对于正整数,请使用

    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对于确保整个数字匹配至关重要。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看