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

Python正则表达式A后跟B后跟C,python,regex,python-3.x,Python,Regex,Python 3.x,我不熟悉正则表达式,我无法想出一个可以接受以下形式字符串的正则表达式: A后接B后接C 示例: ABC, AAAC, CCC, AABBCCCC are accepted CCBBAAA, BCA, ABCABC are rejected 提前感谢。您可以通过使用*量词将所有字符设置为零或多个,同时通过使用先行检查来检查其中一个是否存在 正则表达式:(?=[ABC])^A*B*C*$ 说明: (?=[ABC])提前查看是否存在任何字符,以避免匹配空白字符串 ^A*B*C*$匹

我不熟悉正则表达式,我无法想出一个可以接受以下形式字符串的正则表达式:

A
后接
B
后接
C

示例:

ABC, AAAC, CCC, AABBCCCC   are accepted

CCBBAAA, BCA, ABCABC       are rejected

提前感谢。

您可以通过使用
*
量词将所有字符
设置为零或多个
,同时通过使用
先行检查来检查其中一个是否存在

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

说明:

(?=[ABC])
提前查看是否存在任何字符,以避免匹配空白字符串

^A*B*C*$
匹配
0
多个
A
后接
B
后接
C


更新:

正如Sebastian Proske
^(?=[ABC])所指出的,A*B*C*$
不需要太多步骤,从而提高了性能


您可以通过使用
*
量词将所有字符
设置为零或多个
,同时使用
向前看检查其中一个是否存在

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

说明:

(?=[ABC])
提前查看是否存在任何字符,以避免匹配空白字符串

^A*B*C*$
匹配
0
多个
A
后接
B
后接
C


更新:

正如Sebastian Proske
^(?=[ABC])所指出的,A*B*C*$
不需要太多步骤,从而提高了性能


试试下面的代码片段

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

请尝试以下代码段

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

您的意思是或条件:
A后接B
A后接C
?您的意思是或条件:
A后接B
A后接C
?我将在锚内移动前视,以便首先检查
^
。@SebastianProske:这与当前的有什么不同?有虚假匹配的案例吗?@SebastianProske:你说得对。我的正则表达式比你建议的步骤要多。谢谢。@UditSareen:我们鼓励大家投票选出有帮助的答案,如果这些答案真的解决了你的问题,就标记为已解决。欢迎来到StackOverflow。☺☻我会在锚点内移动向前看,以便首先检查
^
。@SebastianProske:这与当前的有什么不同?有虚假匹配的案例吗?@SebastianProske:你说得对。我的正则表达式比你建议的步骤要多。谢谢。@UditSareen:我们鼓励大家投票选出有帮助的答案,如果这些答案真的解决了你的问题,就标记为已解决。欢迎来到StackOverflow。☺☻