初级
实现正则表达式验证器
未完成
初级参考
完整示例代码供参考,建议自己理解后重新输入
def solve():
from pyodide.http import open_url
from io import StringIO
validation_rules_csv = open_url("https://data.zuihe.com/dbd/ms-shop/state_01/validation_rules.csv").read()
import pandas as pd, re
from io import StringIO
rules = pd.read_csv(StringIO(validation_rules_csv))
def regex_validate(field, value, rules_df):
rule = rules_df[(rules_df['field']==field) & (rules_df['rule_type']=='regex')]
if rule.empty: return True, ''
pattern = rule.iloc[0]['constraint']
ok = bool(re.match(pattern, str(value)))
return ok, rule.iloc[0]['message'] if not ok else ''
cases = [
('email','alice@example.com'), ('email','not-an-email'),
('phone','13812345678'), ('phone','123'),('phone','08012345678'),
]
for field, val in cases:
ok, msg = regex_validate(field, val, rules)
print(f"{field}={val!r}: ok={ok}" + (f", err={msg}" if msg else ''))
示例
输入
solve()
期望输出
email='alice@example.com': ok=True email='not-an-email': ok=False, err=邮箱格式不正确 phone='13812345678': ok=True phone='123': ok=False, err=手机号格式不正确 phone='08012345678': ok=False, err=手机号格式不正确
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199