python - 正则表达式匹配 Python 语法中多个变量的变量赋值?
问题描述
我正在将整个 Python 文件作为单个字符串读取,并以多行模式编译表达式。到目前为止,我已经能够将单变量赋值与 Python 正则表达式匹配:
"^\s*[A-Za-z_][A-Za-z_0-9]*\s*(?=\=)(?!==)"
^\s*
:首先它检查变量赋值是否在新行后跟空格。我这样做是为了防止诸如foo(required=True, thud=3)
匹配之类的语法,因为我没有将它们定义为变量赋值。[A-Za-z_][A-Za-z_0-9]*
: 然后它会寻找一个有效的变量名...\s*(?=\=)(?!==)
: ...并查看变量名是否后跟=
而不是==
,因为它是比较而不是变量赋值。
这工作正常,但不适用于在一行中分配多个变量:
a, b = 4, 5
在这种情况下,正则表达式将不匹配任何一个变量。请注意,它不应与,
, onlya
和b
单独匹配。这个怎么做?
解决方案
推荐阅读
- webrtc - 多少回合服务器应该是最佳的
- python - 如何在不安装的情况下使用 Boto3 libray
- azure - Azure 数据工厂中的缓存查找属性
- python - 如何使用2个数据框的交集作为索引,然后再除以另一个
- javascript - 在按钮上单击选中标记/勾选标记单击时选定的下拉选项显示活动的勾选标记
- c# - 发生模型绑定错误时,ASP.NET WebAPI 全局错误处理过滤器不起作用
- docker - 在 docker compose /bin/sh: 1: main: not found 中找不到可执行文件
- apache-spark - Spark 与 S3 的集成
- xampp - 本地主机 phpmyadmin 中的问题。使用模板缓存时出错
- c# - 从 xml 文件复制数据并粘贴到同一文件中并使用 FIle.Copy() 覆盖