我想使用Python语言中的正则表达式修改toml文件中指定字段中的参数值.例如,在[tool. poetry]字段中交换值name
,而不是[tool. pytest. ini_Options]字段中交换值name
.
[tool.poetry]
version = "0.1.0"
description = "python is good"
name = "template-python"
readme = "README.md"
packages =[
{include="projectname"}
]
[tool.poetry.dependencies]
python = ">=3.11,<3.13"
[tool.poetry.group.test.dependencies]
pytest = "^8.0.0"
[tool.pytest.ini_options]
pythonpath = "."
addopts = ["-v", "-s", "--import-mode=importlib"]
name = "hello"
Python代码:
def tereg():
with open('pyproject.toml', 'r', encoding='utf-8') as f:
r = f.read()
reg_name = r'(?<=name = ").*(?=")'
# reg_name = r'(\[tool\.poetry\][\s\S]*?)name = "(.*)"([\s\S]*?[(\r\n)|\n]\[.*?\])'
re.sub(reg_name, "nameofproject", r)
运行代码时,它更改了两个位置的值[TOOL.POLITY]和[TOOL.PYTEST.INOPTIONS],但我只想更改[TOOL.POLITY]中的值name
.如何编写正则表达式reg_name
?谢谢.😊