Regex 用于a,b中字符串的正则表达式,使得每个a前面紧跟着b

Regex 用于a,b中字符串的正则表达式,使得每个a前面紧跟着b,regex,nlp,logic,Regex,Nlp,Logic,我试图通过在网上找到的一些练习题来学习正则表达式。这个问题显然来自Jurafsky关于NLP的书,到处引用的解决方案是: (b+(ab+) 我不认为这是正确的,因为它将排除字符串包含在单个b中的可能性 我建议的解决方案是(b+(ab+*)?或(b+(ab+)*)* 我的结论不正确吗 问题原文:字母表a、b中所有字符串的集合,这样每个a前面紧跟着a,后面紧跟着b。对于第二个建议的解决方案,您将缺少像“babab”这样的字符串,并且只会匹配像“babbab”这样的字符串。对于第一个,您将只匹配具有单

我试图通过在网上找到的一些练习题来学习正则表达式。这个问题显然来自Jurafsky关于NLP的书,到处引用的解决方案是: (b+(ab+)

我不认为这是正确的,因为它将排除字符串包含在单个b中的可能性

我建议的解决方案是(b+(ab+*)?或(b+(ab+)*)*

我的结论不正确吗


问题原文:字母表a、b中所有字符串的集合,这样每个a前面紧跟着a,后面紧跟着b。

对于第二个建议的解决方案,您将缺少像“babab”这样的字符串,并且只会匹配像“babbab”这样的字符串。对于第一个,您将只匹配具有单个“a”的字符串


为了处理您提到的情况,您明确希望匹配字符串“b”和“bb”,例如,您可以将正则表达式更改为“(b+(ab+)*)?”

对不起,这就是我的意思。Stackoverflow正在删除该星号。我会逃脱的。由于打字错误,我打算编辑我的原始帖子。(b+(ab+)*)不是吗?正确的解决方案而不是(b+)(ab+)?听起来你是正确的。顺便说一句,我认为了解正则表达式最简单的方法是使用一个在线正则表达式测试站点。外面有很多,很有趣。奇怪的是,错误的解决方案无处不在。我能把它插到其中一个测试点上吗?你最喜欢的是什么?