Python正则表达式A后跟B后跟C

时间:2017-05-14 08:29:18

标签: python regex python-3.x

我是正则表达式的新手,我无法想出一个可以接受以下格式的字符串的正则表达式:

A后跟B,然后是C

示例:

ABC, AAAC, CCC, AABBCCCC   are accepted

CCBBAAA, BCA, ABCABC       are rejected

提前致谢。

2 个答案:

答案 0 :(得分:2)

您可以通过使用zero or many量词制作所有字符*并同时使用lookahead

检查其中任何一个是否存在来执行此操作

正则表达式: (?=[ABC])^A*B*C*$

<强>解释

(?=[ABC])预测是否存在任何一个characeters,以避免匹配空字符串。

^A*B*C*$匹配zeromany A,然后是B,后跟C

<强> Regex101 Demo

更新:

正如塞巴斯蒂安·普罗斯克所指出的那样^(?=[ABC])A*B*C*$采取较少的步骤,从而提高了表现。

<强> Regex101 Demo

答案 1 :(得分:0)

尝试以下代码段

import re
inputStr = "AABBCC"
inputStr2 = "BBCCAA"
regex = r"(^A*B*C*$)"
matchObj = (len(inputStr) and re.match(regex, inputStr)) or None;
print(matchObj);