我有一个假设的路径,我想要一个简单的PCRE正则表达式。为了简单起见,我们假设它的深度为三层,并且每个文件夹的名称分别为A,B和C。
以下各项应与表达式匹配:
A
AB
ABC
以下项目应不与表达式匹配:
AC
ACB
B
BA
BAC
BC
BCA
C
CA
CAB
CB
CBA
我能想到的唯一表达是
^**A**(**B**(**C**)?)?$
但是,理想情况下,我希望图案的右侧不取决于深度(深度可能远大于3)。即^**A**\1**B**\1**C**$
请注意,我知道上面的内容是无效的模式,但我希望它能说明我的观点。
我已经弄乱了反向引用等,但是似乎无法破解。有什么想法吗?
这可以解决您描述的问题:
^(A|AB|ABC)$
这可能更接近您的需求:
^A((?<=A)B)?((?<=B)C)?$