regex - 简化正则表达式

标签 regex simplification

我正在做有关正则表达式的练习,但我真的不确定如何做到这一点。

正则表达式为:

((a*)(b*))* ∪ (a*)

我真的很不擅长,但我认为 ((a*)(b*))* 可以简化为 (a ∪ b)* 但是如果这是正确的,那么最后一个 ∪ (a*) 实际上只是一个重复,所以我认为整个表达式可以简化为 (a ∪ b)*。这看起来正确吗?

编辑:∪代表并集

最佳答案

你是对的。 (a*b*)* 可以匹配 a 和 b 的任意字符串,(a U b)* 也可以,因此它们是等价的。 (a U b)* 相交 a*a* 所以 a* 的子集(a U b)*。因此,整个表达式可以简化为(a U b)*

关于regex - 简化正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23566410/

相关文章:

正则表达式查询查找行长度不同的所有 2 个字符组

regex - 如何在 powershell 中使用正则表达式选择 "catch"代码块?

ruby - 迭代字符串数组并执行正则表达式

java - 下面这两个有什么区别?

polynomials - 用分子中多项式的和来简化分数

c# - 用于匹配倒数第二个反斜杠后所有内容的正则表达式

python - 简化正则表达式

graphics - 如何获得简化的斯坦福兔子模型

c# - 需要帮助简化嵌套的 if block