如何在将语法转换为正则表达式时编写 "or" 操作

how to write an "or" operation while translating Grammar to regex

我想将以下语法翻译成正则表达式

A -> bcA | dD |aB
B -> aB |a
D -> dD |d

所以这里的字符串将以 a 或 d 结尾

正则表达式将以 (bc)+ 开头

但是谁能解释一下如何在语言的正则表达式中编写 d+/a+?

你也可以试试这个方法:

(bc)*(d{2,}|a{2,})

这取决于您使用的正则表达式方言。

通常,() 分组中的 | 会创建一个 'or',例如:

th(er|os)e

... 匹配 'there' 或 'those'.

但是请检查您方言的文档,检查是否必须转义括号,是否“|”是否支持等等。