我需要找到所有字符串语言的简化正则表达式 a,' s和c&s,其中a从不紧跟b。
我试了一下,直到(a + c)* c(b + c)* +(b + c)*(a + c)*
这样可以,如果是这样可以简化吗?
提前致谢。
答案 0 :(得分:0)
您正在寻找负面的背后隐藏:
b
这将找到不紧跟a
a(?!b)
个实例
或否定前瞻:
a
这会找到b
以下是lookbehind的regex101示例:
https://regex101.com/r/RsqXbW/1
以下是前瞻的regex101示例:
https://regex101.com/r/qiDIZU/1
答案 1 :(得分:0)
您的解决方案仅包含所需语言的字符串。但是,它并不包含所有这些内容。例如,不包含 acbac 。你的基本想法很好,但你需要能够迭代可能的因素。在:
(b+c)*(a (a)*(c(b+c)*)*)*
第一部分生成所有字符串而不是a。
在第一个a之后,没有任何东西,另一个或者c。另一个让我们有三个相同的选择。 c基本上再次开始游戏。这是第一个正式化之后的部分。需要很多*才能在所有不同选项中生成空字符串。