刚开始欣赏正则表达式,我正在 regexone.com 上练习 我的问题给出了关于 kleene "*"的解释。我自己想出了一个答案”
[a-c]*
但是解决方法是:
aa+b*c+ or a*b*c*
两者在行为上有什么区别吗?特别是如果我将它与 javascript 一起使用?
抱歉我的英语不好。
最佳答案
问题定义不充分,因为没有负面例子。
例如,如果他们在医学院问你“截肢设备的名称是什么”,“汽车”在技术上是正确的,但可能不是他们想听到的(因为许多车祸最终都是与四肢被切断的人)。但如果问题是“医疗专业人员在手术期间进行截肢手术时使用的仪器名称是什么”,答案就不能再是“汽车”了。
同样,您的解决方案适用于所有提供的案例,但不如他们的解决方案精确。例如,"cba"
被您的表达式识别,但被他们的表达式拒绝(至少不是整个字符串的匹配;a*b*c*
很简单将 "cba"
匹配为字符串中任何位置的 0 长度匹配,以及 "a"
位的 1 长度匹配)。就此而言,.*
也是解决他们问题的有效(但完全不精确)的解决方案。
关于javascript - 与 Kleen 正则表达式的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30588204/