[英]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.isdigit , re.search或內置字符串對數字進行轉換,例如float和int :
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.