【问题标题】:Confusion related to regular expression [closed]与正则表达式相关的混乱[关闭]
【发布时间】:2012-11-01 14:02:09
【问题描述】:

我对正则表达式感到困惑。如果有 两组 AB 然后

(AB)* = A*B*

【问题讨论】:

  • “集合”是指字符类吗?
  • 我投票结束这个问题,因为它与help center 中定义的编程无关。可能更适合Computer Science

标签: regex regular-language


【解决方案1】:

在正则表达式的上下文中:is (AB)* = A*B*?

 No, (AB)* is not equals to A*B*

(AB)* means ABABABABAB......AB AB 的序列(任意次数)。
A*B* means AAAA.....BBB...... 任意数量的 A 后跟任意数量的 B。 A不能出现在B之后。

交集 - 两者都只包括 { NULL string, AB }


示例:

假设:A = xyB = z

  (AB)* = xyzxyz.....xyz  
  A*B*  =  xyxyxyxy....zzzz....z

交集 - 两者都只包括 { NULL string, xyz}


示例:

假设 -

  A = {a, b},  
  B = {c, d}  

那么,

(AB)* =  ((a + b)(c + d))* , Its language  
L =  { ac, ab, acbd, acac, .....}   

注意:此语言中的所有字符串都是偶数长度!

A*B*  =   (a + b)* (c + d)* , Its language     
  L = { a, b, c, d, ac, ad, bc, bd, acbd, addb,.........}   

注意:还包含奇数长度的字符串。

【讨论】:

  • 我理解您的 A = ab B = c 示例,但它令人困惑。为了清楚起见,我建议使用A = xy B = z
  • 将 a,b,c 更改为 x,y,z 以保持节制。标准是用于表示语言符号的小写字母和 SET 的大写字母
  • 另外,不应该使用 z, x, y, w ...(最后的小字母)标准将其用于语言字符串。
  • 问题是当你有ABab 会令人困惑。 A = a B = bc 也可以。无论如何,你的一个赞成票来自我。
  • 感谢@JustinMorgan!我只是想分享我的知识:)。谢谢,排灯节快乐!
【解决方案2】:
(AB)* = A*B*  ?

没有。首先是语言

 {void, ab, abab, ababab, ...}

第二个是语言

{void, a, b, aa, ab, bb, aaa, ...}

【讨论】:

  • 第二个例子我不同意ba
猜你喜欢
  • 1970-01-01
  • 2016-05-04
  • 1970-01-01
  • 2012-04-08
  • 2015-04-27
  • 1970-01-01
  • 2015-10-22
  • 1970-01-01
相关资源
最近更新 更多