我是正则表达式的新手,我无法想出一个可以接受以下格式的字符串的正则表达式:
A
后跟B
,然后是C
。
示例:
ABC, AAAC, CCC, AABBCCCC are accepted
CCBBAAA, BCA, ABCABC are rejected
提前致谢。
答案 0 :(得分:2)
您可以通过使用zero or many
量词制作所有字符*
并同时使用lookahead
正则表达式: (?=[ABC])^A*B*C*$
<强>解释强>
(?=[ABC])
预测是否存在任何一个characeters,以避免匹配空字符串。
^A*B*C*$
匹配zero
或many
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);