正则表达式 - 以“a”开头并涉及一个或多个“b”

时间:2018-05-07 21:30:52

标签: python regex

我正在尝试创建一个正则表达式,用于查找以a开头的字符串,并在字符串中的任何其他位置都有一个或多个b(s)

我知道我必须从'^a开始,但在那之后我就失去了如何让它在那之后的任何地方找到b。我认为我得到的最接近的是'^a.+.b+$',我随机试图查看它是否有效,但当然,这是不对的。

2 个答案:

答案 0 :(得分:6)

它甚至更简单:

^a.*b

您从a开头,用0或更多任意字符跟随它,然后是b。如果你想要的只是至少1 b,那么在找到第一个b后,你就不需要明确地匹配任何内容。

您的正则表达式需要一个

字符串
  1. a
  2. 开头
  3. 后跟 1 或更多任意字符
  4. 后跟另一个任意字符
  5. 以1个或多个b s。
  6. 的字符串结尾

    注意这会排除像

    这样的字符串
    • ab,短于正则表达式所需的最小长度4。
    • abasbbc,不以b
    • 结尾

答案 1 :(得分:2)

补充chepner答案,如果你想找到两个不必要的b,那么你可以使用:

^a.*b.*b

如果要查找必须分开的两个b,可以使用:

^a.*b[^b]+b

此外,如果您想在b之后找到两个bb,例如a,那么您可以使用

^a.*bb

而且,如果您想找到至少一个b,那么您可以使用:

^a.*b+

顺便说一句,上面的正则表达式将匹配句子的开头,如果你想匹配整个句子,你可以在模式的末尾添加.*,如:

^a.*b+.*