← 返回题库
初级

实现正则表达式验证器

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
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=手机号格式不正确
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码