最佳正则表达式



我有一个假设的路径,我想要一个简单的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(BC?)?)$  

按照所述解决您的问题(感谢CTWurs的第二个选项,它更有效(,这可能更接近您所寻求的:

^A((?<=A)B)?((?<=B)C)?$

这意味着"A,然后可选B,但仅当它跟随 A,然后可选 C 但仅当它跟随 B 时",因为它可以使用任意长值列表的简单迭代以编程方式构建。除第一学期外,每个部分都由

((?<=PREVIOUS)NEXT)?

相关内容

  • 没有找到相关文章

最新更新