该公式指的是,在 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
|