我需要建议来解决这个问题,我很难过,并不知道从哪里开始。 我不想要代码我只需要建议
问题如下:
使用正则表达式提取所有得到的变量名 分配给字典或从位于Python程序中设置文字 在文件code.py中。 Python变量匹配正则表达式\ w + 在Python中(请参阅有关\ w的文档)。字典和集 文字以一个开放的波浪形支撑({)开始。
例如,给定这个Python程序:
code.py
# Here is a Python file. names = {} foo = [] names[0] = 12 christmas ={ 'tree': 'green', 'candy cane': 'red and white' } def yes(): return "yes"
你的程序应该产生这个输出:
names christmas
变量名称应按照它们在文件中出现的顺序打印出来。 Python代码在语法上是有效的,但不一定是可执行的而没有错误。
所以我有这个code.py由上面的代码和我的新文件program.py组成,我必须读取code.py的内容并输出所有字典的变量名。这意味着如果要更改code.py并在其中添加更多字典,它仍将按顺序输出所有字典。
关于什么会有什么帮助的解释!
答案 0 :(得分:1)
您可以使用此正则表达式
(\w*)\s*=\s*{(?:.|\n)*?}
如何
(\w*) #match the dict name (any alphanumeric character and _ ) and capture it
\s*=\s* #match '=' with any amount of space around it
{ # match '{'
(?:.|\n)*? # match any dict defintion over couple of lines
} # match '}'
您可以查看here