编写python程序,使用正则表达式提取一个 Python 程序中的所有变量名, # 然后打印出变量名,以及变量名所在的位置(即文件中的第几行)。
时间: 2023-06-25 17:06:28 浏览: 97
C#基于正则表达式实现获取网页中所有信息的网页抓取类实例
下面是一个简单的 Python 程序,它使用正则表达式提取变量名,并打印出变量名和所在的行数:
```python
import re
# 读取 Python 程序
with open('example.py', 'r') as f:
code = f.read()
# 定义正则表达式,匹配 Python 变量名
pattern = r'\b[a-zA-Z_][a-zA-Z0-9_]*\b'
# 在程序中查找所有匹配项
matches = re.finditer(pattern, code)
# 打印出匹配到的变量名和所在的行数
for match in matches:
line_number = code.count('\n', 0, match.start()) + 1
print(f'{match.group()} on line {line_number}')
```
其中,`re.finditer()` 函数返回一个可迭代对象,每个迭代对象代表一个匹配项。利用 `code.count()` 函数可以统计变量名之前的换行符数量,从而确定该变量名所在的行数。
阅读全文