正则表达式替换两个字符之间的文本,第一次出现

时间:2017-09-21 09:41:46

标签: regex sed

我需要删除字符之间的所有文字:{},例如:

the car {is} black {and} big

我运行Linux命令:

sed -i 's/{.*}//g' myfile.txt

但结果是:the car big而不是我想要的:the car black big。正则表达式找到了最大的括号大括号并删除了它之间的文本,但我想单独处理每个闭包。 是否有正则表达式可以完成这项工作?

提前致谢

1 个答案:

答案 0 :(得分:1)

这一行应该有所帮助:

sed 's/{[^}]*}//g'

正则表达式.*执行贪婪匹配,它会匹配输入中的第一个{到最后一个}