簡體   English   中英

Python-正則表達式-對或錯

[英]Python - Regex - True Or False

因此,我想讓我的代碼理解我的輸入中是否包含數字,如果輸入是數字,則意味着輸出“正確”,但如果沒有輸入,那么它將輸出“不正確”,我該如何實際進行輸入?這項工作。 因此它知道輸入中是否存在整數。 任何幫助表示贊賞

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

您可以使用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:該語句應為if number == True: if number:值為True ,則其原因是如果匹配任何內容,則將其測試為True否則,則為None

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

注意,有些奇怪

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

打印false,因此number不是值true,它將覆蓋__bool__ 請參閱https://docs.python.org/3/reference/datamodel.html#object。 布爾的更多信息

您要查找的正則表達式為: \\w*[0-9]+\\w* 它接受包含至少一位數字的任何內容。

\\w*[a-zA-Z0-9_]*表示它將在字面上匹配任何小寫/大寫字母,數字或_ 它可能在字符串中出現0到很多次

[0-9]+匹配0到9之間的一個到多個數字。

實際上,如果您只是想檢查字符串是否包含數字,則最好只使用[0-9]+ ,這與您最初發布的內容相同。

您可以嘗試使用此網站regex101.com創建正則表達式

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM