该公式指的是,在 b 的前后有相同个数的 n。 n 不是具体值,所以关键点在于相同个数而非指定个数。 已知 Perl 是可以的,好奇 python 的 re 库可否实现?
![]() | 1 persistz OP 更正一下,有个 typo...相同个数的 a。 |
2 xml123 2019-06-04 23:26:27 +08:00 (a+)b\1 不就行了吗,不过前后需要指定边界 |
3 junkun 2019-06-04 23:27:17 +08:00 按照计算理论来说,正则语法是 3 型语法,而 a^nba^n 是典型的 2 型语法。而且 2 型语法是 3 型语法的超集。所以理论上来说是匹配不了的。 |
![]() | 4 persistz OP @xml123 这里\1 指的是第一个括号对吧?我试一下,因为之前找到 re 里对这种写法的定义… |
![]() | 5 persistz OP @junkun 嗯,这是没错的,但编程语言里的 re 不是真正的正则语言,所以概念上不能直接和 CFL 比较 |
6 junkun 2019-06-04 23:32:09 +08:00 但是 Python 的 re 是可以的。用\1 表示第一个捕获组。 |
10 Death 2019-06-05 11:17:20 +08:00 via Android |