Python Regex真或假

2024-09-27 09:29:29 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我想让我的代码理解我的输入中是否有数字,如果有,它就意味着输出“正确”,但如果没有,那么它将输出“不正确”,我如何才能真正做到这一点呢。所以它知道输入中是否有整数。感谢任何帮助

import re
yourString=input()
number = re.search(r'\d+', yourString).group()
if number == True:
  print("Correct")
else:
  print("Incorrect")

Tags: 代码importretruenumberinputsearchif
3条回答

您要查找的regex是:\w*[0-9]+\w*。它接受至少包含一个数字的任何内容。在

\w*[a-zA-Z0-9_]*相同,这意味着它将匹配任何小写/大写字母、数字或_。它可以在字符串中出现0到多次

[0-9]+匹配从0到9的一到多个数字。在

实际上,如果您的目的只是检查字符串是否有数字,那么只需使用[0-9]+这与您最初发布的内容相同。在

您可以尝试使用此站点创建regex regex101.com

您可以使用str.isdigitre.search或内置的字符串到数字转换,如floatint

def extractNumber(string):
    for word in string.split():
        try:
            # The float() function accepts a decimal string.
            # The int() function accepts an integer string.
            return float(word)
        except ValueError:
            pass

number = extractNumber(input())

if number is not None:
    print('Your number is: {}'.format(number))
else:
    print('No number found')

根据https://docs.python.org/3/library/re.html#match-objects你有一点小错误。在

语句不应该是if number == True:,它应该是if number:,原因是如果有匹配的话,值数是测试的True,如果没有匹配的话,则是None。在

import re
yourString=input()
number = re.search(r'\d+', yourString)
if number:
    print("Correct")
    group = number.group()
else:
    print("Incorrect")

注意,有点奇怪

^{pr2}$

打印false,因此number不是true值,它重写__bool__。有关详细信息,请参见https://docs.python.org/3/reference/datamodel.html#object.bool

相关问题 更多 >

    热门问题