我使用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
来查找和替换字符串。但是我从来没有得到我想要的输出。
答案 0 :(得分:1)
这个单行完成整个转型:
str = re.sub(r'(options) (\S+)', r'\2\n \1', str.replace('/path/', '/root/directory/path/')
查看此代码的live demo
答案 1 :(得分:0)
你可以试试这个:
result = re.sub(r'([ \t =,])/', replace_text, text, 1)
最后一个1
仅表示第一个匹配,因此只替换第一个路径。
顺便说一句,我认为您想要保留空格/制表符或逗号吧?像这样生成replace_text:
replace_text = r'\1/root/directory/'
答案 2 :(得分:0)
确定。得到了Bohemian和Jerry的答案。得到它使用组合代码。
str = re.sub(r'(options) (\S+)', r'\2\n \1', re.sub(r'([ \t =,])/', replace_text, text))