带有偶数 ab 和 ba 实例的正则表达式

问题描述 投票:0回答:1

我正在尝试编写一个正则表达式来匹配带有 ab 和 ba 实例且仅包含 {a,b} 字母表的字符串。

我尝试仅使用

|
*
运算符来实现此目的。我认为这与我切换字母需要偶数的次数有关。

例如:

aba
被接受(1 ab 和 1 ba)。它在字符之间切换两次。

aaaa
被接受,因为它有 0 个 ab 和 ba 实例并且切换字符 0 次。

我真的很难生成正则表达式。

我尝试了像

(a*b*a*)|(b*a*b*)
和其他一些正则表达式,但我似乎无法解决它。

regex regular-language automata formal-languages
1个回答
0
投票

如果字符串仅包含 a 和 b,则当且仅当以相同字母开头和结尾时,

ab
出现的次数将等于
ba
出现的次数。

所以你可以写:

a(a|b)*a|b(a|b)*b

© www.soinside.com 2019 - 2024. All rights reserved.