微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法计算出以下的正则表达式 我已经尝试过的:

如何解决无法计算出以下的正则表达式 我已经尝试过的:

我最近一直在研究编译器设计,发现正则表达式非常棘手。 所以我正在制作一个词法分析器,我需要词法规范。

我无法弄清楚标识符的 RE(规则定义如下):

  • 最多 4 个字符
  • 至少 1 个字母

我已经尝试过的:

(letter|digit){4} // 我读到我们可以像这样限制出现。但在这种情况下,11aa 也将被接受。

我想我也可以像这样重写上面的语句。

(字母|数字)(字母|数字)(字母|数字)(字母|数字)

如果我错了,请纠正我,并提前致谢!

解决方法

这项任务的棘手之处在于确保我们至少有一封信。 这封信可以在四个位置中的任何一个。

(letter)(letter|digit){0,3} | (letter|digit)(letter)(letter|digit){0,2} | (letter|digit){2}(letter)(letter|digit){0,1} | (letter|digit){3}(letter)  

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。