python - Python 中的 RE - lastindex 属性

标签 python regex

我正在编写有关 Python 的“高级”正则表达式的教程, 我无法理解

lastindex

属性。为什么在给定的示例中它始终为 1: http://docs.python.org/2/library/re.html#re.MatchObject.lastindex

我的意思是这个例子:

re.match('((ab))', 'ab').lastindex

为什么是1?第二组也匹配。

最佳答案

lastindex 是最后匹配的组的索引。文档中的示例包括使用 2 个捕获组的示例:

(a)(b)

其中 lastindex 设置为 2,因为最后一个匹配的捕获组是 (b)

当您有可选的捕获组时,该属性会派上用场;比较:

>>> re.match('(required)( optional)?', 'required').lastindex
1
>>> re.match('(required)( optional)?', 'required optional').lastindex
2

当您有嵌套组时,外部组是最后一个匹配的。因此,使用 ((ab))((a)(b)) 时,外部组是组 1,也是最后一个匹配的组。

关于python - Python 中的 RE - lastindex 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22489243/

相关文章:

python - 为什么在 Google App Engine 上使用 XHTML2PDF 时我的图像不显示?

python - 使用 lil_matrix 分割多关系图

python - 按下鼠标右键时 Python TKinter 文本小部件中的 Stardand 上下文菜单

Java正则表达式基本使用问题

python - 如何从推文中提取或抓取所有缩短的 URL?

regex - Emacs,使用 replace-regexp-in-string 来匹配两个正则表达式

mysql - 如何在 MySQL 中匹配恰好有 2 个斜杠的字符串

python - 为什么我不能从字典中追加这个值?

javascript - 在 JavaScript 中检查字符串是否包含另一个子字符串的最快方法?

python - Keras model.predict 不接受大小为一的输入(标量)