Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 使用命令sed将变量替换为正则表达式错误_Regex_Linux_Sed - Fatal编程技术网

Regex 使用命令sed将变量替换为正则表达式错误

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

当我学习有关sed的命令时,我发现这个问题我无法解决。我想要处理的txt如下:

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/'