使用正则表达式识别无效的格式:模式\d\d\.\d\d
拒绝格式'xx.xx'
中的任何字符串,其中x是十进制数字.这涉及到你的具体情况.第二个表达式处理一系列格式,如下所述.
import re
from dateutil.parser import parse
def convert_to_ddmmyy(date_string):
# if re.match(r"\d\d\.\d\d",date_string): # rejects basic pattern xx.xx
if re.fullmatch(r"\d*\.\d*",date_string): # rejects wider range of similar patterns
return "Invalid date format"
try:
date = parse(date_string)
formatted_date = date.strftime("%d%m%y")
return formatted_date
except ValueError:
return "Invalid date format"
# Example usage
date_string = "13.75"
converted_date = convert_to_ddmmyy(date_string)
print(converted_date)
赠送
Invalid date format
以下是一个解释.match
在字符串中查找模式并返回True或False.\d
表示一个数字.\
用于将其设置为控制值,而不是查找字母d
;需要\.
来查找停靠点,因为它在regex中以其他方式使用(用于接受任何内容).*
表示没有或更多以前的.因此,第二个模式查找无数字或任意数字、停止、无数字或任意数字.但是,match
会拒绝2023.12.12
(这可能是一个日期),因为它看到模式2023.12
和12.12
;但是fullmatch
会判断整个字符串是否匹配该模式,因此将接受此字符串.希望这能对你有所帮助.正则表达式在判断和更改字符串方面有很多用处.