Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.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_Bash_Sed - Fatal编程技术网

Regex sed->替换字符串中的固定文本和括号

Regex sed->替换字符串中的固定文本和括号,regex,bash,sed,Regex,Bash,Sed,如何表达这个意思 echo "ObjectId(5e257e424ed10b0015e3e780),'qwe',ObjectId(5e257e424ed10b0015e3e780),()" 对此 5e257e424ed10b0015e3e780,'qwe',5e257e424ed10b0015e3e780,() 使用sed 我用这个: echo "ObjectId(5e257e424ed10b0015e3e780),'qwe',ObjectId(5e257e424ed10b0015e3e78

如何表达这个意思

echo "ObjectId(5e257e424ed10b0015e3e780),'qwe',ObjectId(5e257e424ed10b0015e3e780),()"
对此

5e257e424ed10b0015e3e780,'qwe',5e257e424ed10b0015e3e780,()
使用sed

我用这个:

echo "ObjectId(5e257e424ed10b0015e3e780),'qwe',ObjectId(5e257e424ed10b0015e3e780),()" | \
   sed 's/ObjectId(\([a-z0-9]\)/\1/'
你可以用

sed 's/ObjectId(\([[:alnum:]]*\))/\1/g'

POSIX BRE模式意味着:

ObjectId-匹配文本字符串 \[[:alnum:][]*\-组1:零个或多个字母数字字符 -文字。 \1替换将仅保留组1值

g标志将替换所有事件。

您可以使用

sed 's/ObjectId(\([[:alnum:]]*\))/\1/g'

POSIX BRE模式意味着:

ObjectId-匹配文本字符串 \[[:alnum:][]*\-组1:零个或多个字母数字字符 -文字。 \1替换将仅保留组1值


g标志将替换所有事件。

输出如预期,5e257e424ed10b0015e3e780,'qwe',5e257e424ed10b0015e3e780,。为什么有人认为这个解决方案是错误的?@radya100好的,我修正了问题的格式并删除了令人困惑的部分。也许sed's/ObjectId\[^]*\/\1/g'文件?@potong当然,但在问题中,括号之间部分的要求没有指定。输出如预期的那样,5e257e424ed10b0015e3e780,'qwe',5e257e424ed10b0015e3e780,。为什么有人认为这个解决方案是错误的?@radya100好的,我修正了问题的格式并删除了令人困惑的部分。也许sed's/ObjectId\[^]*\/\1/g'文件?@potong当然,但在问题中,括号之间的部分的要求没有指定。你说预期的是5e257e424ed10b0015e3e780,'qwe',5e257e424ed10b0015e3e780,,但是你说我不能删除最后一个括号。请确认您需要的确切输出。您是否尝试过使用正则表达式测试仪,以查看正则表达式是否正确?@Bart regex101在测试应符合POSIX BRE的模式时应谨慎使用,因为该工具仅适用于PCRE、JS、Python re和Golang regex风格。我们应该知道以后如何转换模式以及要避免的构造。@WiktorStribiżew Good point!radya100请在使用测试工具时匹配您特定的正则表达式风格,您说预期的是5e257e424ed10b0015e3e780、'qwe',5e257e424ed10b0015e3e780,,但您说我不能删除最后的括号。请确认您需要的确切输出。您是否尝试过使用正则表达式测试仪,以查看正则表达式是否正确?@Bart regex101在测试应符合POSIX BRE的模式时应谨慎使用,因为该工具仅适用于PCRE、JS、Python re和Golang regex风格。我们应该知道以后如何转换模式以及要避免的构造。@WiktorStribiżew Good point!radya100请在使用测试工具时匹配您的特定正则表达式风格