Regex 使用命令sed将变量替换为正则表达式错误
当我学习有关sed的命令时,我发现这个问题我无法解决。我想要处理的txt如下:Regex 使用命令sed将变量替换为正则表达式错误,regex,linux,sed,Regex,Linux,Sed,当我学习有关sed的命令时,我发现这个问题我无法解决。我想要处理的txt如下: myBook:test yetongxue$ cat test.txt def IsNonce_strSet(self): """ 判断随机字符串是否存在 @return true 或 false """ return self._values.has_key('nonce_str') 这是我的命令和结果: myBook:te
myBook:test yetongxue$ cat test.txt
def IsNonce_strSet(self):
"""
判断随机字符串是否存在
@return true 或 false
"""
return self._values.has_key('nonce_str')
这是我的命令和结果:
myBook:test yetongxue$ sed "s/return self._values.has_key\(\)/mark1 \1 mark2/g" test.txt
def IsNonce_strSet(self):
"""
判断随机字符串是否存在
@return true 或 false
"""
mark1 mark2('nonce_str')
我对mark2的位置感到困惑,它应该在('nonce_str')之后。
像这样:
标记1('nonce_str')标记2
有人能解释吗?非常感谢
此外,如何将正则表达式变白,以便只匹配字符串nonce_str。
我的命令是:
sed“s/return self.\u values.has_key('()')/mark1\1 mark2/g”test.txt
但是它不工作。正则表达式
\(\)
匹配并捕获sed
中的空字符串
显然,您希望捕获一组文字括号以及它们之间的文本
sed ´s/return self\._values\.has_key\(([^()]*)\)/mark1 \1 mark2/'