轻松的编程学习
首页
题库
学习路径
在线商城
能力地图
下载应用
登录 / 注册
菜单
自己写:按最长匹配挑规则
👁️ 2 人浏览
💬 0 人评论
❤️ 添加收藏
不用正则引擎的自动选择,自己实现一次:补全
pick
,在所有能匹配的规则里挑
最长
的,一样长就挑
写在前面
的。
提交你的答案
请登录后提交答案。
去登录
← 自己写:把手写规则翻译成正则
自己写:正则版和手写版对拍 →
更多题目
让程序说出"你好"
让程序欢迎你
哪个命令能显示内容
哪里是指令,哪里是结果
让程序说出你的名字
这个程序会显示什么
代码编辑器
语言:
python3
c11
cpp17
Ctrl
+
Enter
运行
👩🏫 AI
▶ 运行代码
重置代码
打印代码
KEYWORDS = ("let", "if", "else", "while") TWO = ("==", "!=", ">=", "<=") ONE = "+-*/=<>;()" SRC = 'let rate = 12;\nlet msg = "hi there";\ntotal = rate >= 3;' import re RULES = [("KEYWORD", r'let|if|else|while'), ("IDENT", r'[A-Za-z_]\w*'), ("OP2", r'==|!=|>=|<='), ("OP1", r'[+\-*/=<>;()]')] def pick(src, i): hits = [] for name, pat in RULES: m = re.compile(pat).match(src, i) if m: hits.append((name, m.group())) if not hits: return "无" # TODO: 在 hits 里挑 len(词) 最大的;一样长时挑 RULES 里排在前面的 return hits[-1][0] print("/".join(pick(s, 0) for s in ("letter", "let", ">=", ">")))
本次输入:
输出:
👩🏫
AI
请登录后使用 AI 老师
×
登录后可获得解题思路、提示与错误分析。
去登录
关闭
🎉
恭喜你,回答正确!
系统判定:正确
我知道了
💬 题目评论
提交
全部评论
全部评论