1

我使用python 2.7.5。我在目录/子目录中有一些文件。示例file1如下

Title file name
    path1 /path/to/file
    options path2=/path/to/file1,/path/to/file2,/path/to/file3,/path/to/file4 some_vale1 some_vale2 some_value3=abcdefg some_value4=/path/to/value some_value5

我想/root/directory在文本文件中插入文本。我想要的最终结果如下:-

Title file name
    path1 /root/directory/path/tofile
    path2=/root/directory/path/to/file1,/root/directory/path/to/file2,/root/directory/path/to/file3,/root/directory/path/to/file4
    options some_vale1 some_vale2 some_value3=abcdefg some_value4=/path/to/value some_value5 

所有文件中的名称path, options and path2都相同。需要修改目录/子目录中的文件,结果与上述相同。我尝试使用re.sub来查找和替换字符串。但是我从来没有得到我想要的输出。

4

3 回答 3

1

这个单线完成整个转换:

str = re.sub(r'(options) (\S+)', r'\2\n    \1', str.replace('/path/', '/root/directory/path/')

查看此代码的现场演示

于 2013-09-29T16:51:05.563 回答
0

你可以试试这个:

result = re.sub(r'([ \t =,])/', replace_text, text, 1)

最后一个1是仅指示第一个匹配项,以便仅替换第一个路径。

顺便说一句,我认为您想节省空格/制表符或逗号,对吗?像这样制作replace_text:

replace_text = r'\1/root/directory/'
于 2013-09-29T11:51:46.077 回答
0

行。从波西米亚和杰瑞那里得到了答案。让它与组合代码一起工作。

str = re.sub(r'(options) (\S+)', r'\2\n    \1', re.sub(r'([ \t =,])/', replace_text, text))
于 2013-09-30T01:15:04.860 回答