如何校验符合X[0-180]Y[0-180]规则的用户提交数据格式?
数据格式校验实现方法
校验分为格式匹配、数值范围校验两个环节,具体实现逻辑如下:
- 第一步:用正则做格式初筛,排除结构完全不符合要求的输入,同时提取X、Y后面的数值段
如果你的完整输入结构和示例一致(带x = "前缀和"后缀),可以使用正则^x = "X(\d{1,3})Y(\d{1,3})"$完成匹配;如果只需要校验X数字Y数字本身的格式,把正则简化为^X(\d{1,3})Y(\d{1,3})$即可。 - 第二步:将正则捕获到的两个数值段转为整数,分别校验是否处于0~180的闭区间,两个数值都符合要求则校验通过。
下面是Python语言的实现示例:
import re def validate_data(input_str): # 匹配完整格式并捕获两个数字段 pattern = r'^x = "X(\d{1,3})Y(\d{1,3})"$' match_result = re.fullmatch(pattern, input_str.strip()) # 格式不匹配直接返回失败 if not match_result: return False # 校验数值范围 x_val = int(match_result.group(1)) y_val = int(match_result.group(2)) return 0 <= x_val <= 180 and 0 <= y_val <= 180
测试效果参考:
- 输入
x = "X180Y50"返回True - 输入
x = "X181Y0"返回False(X数值超出范围) - 输入
x = "XaY123"返回False(格式不匹配) - 输入
x = "X12Y190"返回False(Y数值超出范围)
内容的提问来源于stack exchange,提问作者Abdoullah al-hajj
相关产品推荐
相关产品推荐

