我想用一个正则表达式+ backref表达匹配并替换正则表达式的字符串替换:忽略逗号如果backref是空
text = 'a,b,c'
与text = 'a,b,c,item_1'
text = ''
与text = 'item_1'
和
text = 'a'
与text = 'a,item_1'
。
我使用
sed
也使用python regex是在通常的解决方案感兴趣。特别是,我正在寻找与(python)的lineinfile模块一起使用的解决方案。
这里是我到目前为止(在Ansible):
regexp: "^(text[ ]*=[ ]*')([^']*)(')"
backrefs: yes
line: '\1item_1,\2\3'
编辑:如果可能的话,正则表达式+ backref-EX对应该忽略一个已经存在的item_1
,即“更换”
text = 'item_1'
与text = 'item_1'
和
text = 'a,item_1'
与text = 'a,item_1'
和
text = 'a,d,x'
与text = 'a,item_1,x'
等
是一个增加另一个
lineinfile
任务,B和C总是单个字母,也可以是什么? –实际上,列表中的项目可以是带下划线的真实单词,但对于这个问题,我们保留单个字符。 – Juve