希望解析这样的字符串:
AxBxCxAxBxCxAxBxCxAxBx...AxBZCx...
在哪里
- 项目清单
- A 是已知的字符序列(如 'foo')
- B 是已知的字符序列(如“bar”)
- C 是已知的字符序列(如 'baz')
- x 是零个或多个不包含 A、B 或 C 的未知字符的序列
- Z 是已知的字符序列(如“Gorilla”)
我需要知道的是在 BZC 之前出现的 A 的出现次数(将是 1 次或更多)。B 和 C 部分不是无关的,因为 Z 可能作为任何 x 的一部分出现。
我是正则表达式的新手,但这似乎只是它的工作。我宁愿避免涉及循环的编程语言实现(如标记器算法)。
编辑:在考虑了更多之后,我意识到虽然 Z 是我最初所说的我所追求的,但真正重要的是 BZC。鉴于我需要的只是在那之前的 A 的计数,并且 x 永远不会包含 A,我可以将 Z 定义为原始 BZC 并简化问题:
要解析的原始字符串:xAxAxAx...Z
其中 A 和 x 都不包含 Z,并且 x 不包含 A。在 Z 之前查找 A 的实例数。