我正在添加一些代碼來驗證傳入引數是一個字串化的 12 位整數。
我的代碼::
id = event['id']# incoming parameter called 'id'
logger.info(f"Received id {id}. Validating that it contains 12 digits...")
regex = "\b\d{12}\b"
if re.fullmatch(regex, id):
logger.info(f"{id} is a 12 digit string")
valid_param = True
else:
logger.warn(f"{id} is not a 12 digit string")
valid_param = False
return valid_param
當我運行它時,我得到:
Received id 123123123123. Validating that it contains 12 digits...
id is not a 12 digit string
我試過了,str(id)但得到了相同的結果。我曾經type(id)確認它已經是一個字串。
我什至嘗試過 int(id) 來取樂(但得到了,毫不奇怪expected string or bytes-like object)。
會發生什么?
uj5u.com熱心網友回復:
這是因為正則運算式沒有定義為原始字串文字。r定義正則運算式時,您需要在引號前加上 a 。以下代碼列印True:
import re
regex = r"\b\d{12}\b"
id = '123123123123'
if re.fullmatch(regex, id):
print(True)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/383906.html
