相当于这个正则表达式的正式语法是什么?

时间:2013-10-27 16:48:04

标签: regex

正则表达式是(a +)+。使用NFA,这将为reDOS attacks提供更长的字符串。这个正则表达式的等效语法是什么?

现在我试图通过多个步骤确定语法。

a +会转换为

S -> a
S -> aS 

(a +)+会转换为

G -> S
G -> SG

我不确定如何进一步简化它是CFG还是CSG?任何建议都会有很大的帮助

1 个答案:

答案 0 :(得分:2)

(a+)+相当于a+。可能的语法是

  • S→A
  • A→a
  • A→aA

语法是规则的(必须存在这样的语法,因为它是从正则表达式派生的)。因此它也是无上下文的,因此也是上下文敏感的。