正则表达式:数学与编程

时间:2010-08-08 06:26:47

标签: regex semantics formal-languages

考虑以下正则表达式:

  1. 7 +
  2. (7)+
  3. 对数学中的正则表达式理论非常熟悉的人是否同意这两个正则表达式在语义上是相同的?

5 个答案:

答案 0 :(得分:4)

以编程方式(如由语言的正则表达式引擎评估),它仅在capturing groups结果中有所不同。

除此之外,它们是相同的。它是((7) + (1))而不是7 + 1。他们评估是相同的。 (是的,从数学上讲,常规语言不会评估任何东西)

答案 1 :(得分:1)

是的,这两个正则表达式是相同的,因为它们都识别相同的语言。他们写得不一样的事实只是一个符号问题。

答案 2 :(得分:0)

他们描述的是同一种语言吗?是。他们对试图解释语言的人有同样的意思吗?不。第二个告诉我,我应该对7s更感兴趣。

答案 3 :(得分:0)

第二个减少到第一个。你同意吗

 ab+

 a(b)+

 (ab)+

在语义上是不同的吗?

答案 4 :(得分:0)

唯一的区别是parens将封闭的模式分配给一个组,这样你就可以在评估它之后引用它。