首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将特定正则表达式应用于特定行

如何将特定正则表达式应用于特定行
EN

Stack Overflow用户
提问于 2013-05-09 16:06:44
回答 1查看 121关注 0票数 1

我正试图在特定的行上应用特定的regex,这是由启动键指定的:现在,我在python变量my_config中包含了文件的内容。

代码语言:javascript
复制
file content
---------------------------------------------
[paths]
path_jamjs: C:/Users/[changeUsername]/AppData/Roaming/npm/node_modules/jamjs/bin/jam.js
path_php: C:/[changeUsername]/php/php.exe

values to replace
---------------------------------------------
"path_jamjs": { "changeUsername": "Te" },
"path_php": { "changeUsername": "TeS" },

代码语言:javascript
复制
with open ("my.ini", "r") as myfile:
  my_config = myfile.read()

如何在my_config中的整个文件内容上应用regex替换,该文件内容将替换特定对应行的值,而不必逐行循环,是否可以使用regex?执行此操作?

给定的

代码语言:javascript
复制
path: path_php
key: changeUsername
value: Te

变化

代码语言:javascript
复制
path_jamjs: C:/Users/[changeUsername]/AppData/Roaming/npm/node_modules/jamjs/bin/jam.js
path_php: C:/[changeUsername]/php/php.exe

代码语言:javascript
复制
path_jamjs: C:/Users/[changeUsername]/AppData/Roaming/npm/node_modules/jamjs/bin/jam.js
path_php: C:/Te/php/php.exe
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-09 16:15:09

代码语言:javascript
复制
with open ("my.ini", "r") as myfile:
    my_config = myfile.read()

lines = my_config.splitlines(True)
replacements = {"path_jamjs": {"changeUsername": "Te"},
                "path_php": {"changeUsername": "TeS"}}

for path, reps in replacements.items():
    for i, line in enumerate(lines):
        if line.startswith(path + ':'):
            for key, value in reps.items():
                line = line.replace('[' + key + ']', value)
            lines[i] = line

result = ''.join(lines)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16466209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档