让有这样的行:
b = 1b = [1, 2, 3]b = {1, 2, 3}
我只想找到b = 1,即任意数量的缩进,任意长度的名称,任意长度的数字,但只有一个数字,列表中出现的数字不适合。
试过:
(\s*\D*\w+).*=.*?[^[]*(\d+)
但即使使用贪婪搜索,分组时的结果,例如:
b = [1, 2, 3]看起来像这样:b = [1, 2, 3也就是说,它仍然爬过。
告诉我如何在第一个条目处[停止搜索{,因为那样就不一样了。
让有这样的行:
b = 1b = [1, 2, 3]b = {1, 2, 3}我只想找到b = 1,即任意数量的缩进,任意长度的名称,任意长度的数字,但只有一个数字,列表中出现的数字不适合。
试过:
(\s*\D*\w+).*=.*?[^[]*(\d+)
但即使使用贪婪搜索,分组时的结果,例如:
b = [1, 2, 3]看起来像这样:b = [1, 2, 3也就是说,它仍然爬过。
告诉我如何在第一个条目处[停止搜索{,因为那样就不一样了。
利用
在 Python 中:
查看表达式如何工作的示例。细节:
^- 行首[_A-Za-z]\w*- 下划线后跟 0 个或多个字母/数字/_=- 子串=\d+- 1 位或多位数字$- 行结束。你可以不这样做
^,$如果你使用re.fullmatch:如果您只想允许与 ASCII 集匹配的数字,请传递给
re.fullmatch/re.searchflagre.A/re.ASCII:我记得从珍珠时代起就应该避免贪婪。
.*结果: