Regex 用于仅在括号之间查找的正则表达式

Regex 用于仅在括号之间查找的正则表达式,regex,Regex,鉴于以下正则表达式和文本- regex - #\{.*\} text - "abc #{:abc :cde} dont-mtach #{:xyz :wqt} do-not do-not-not") 我只想在结果中获得{:abc:cde}{:xyz:wqt}。但是,上面也给出了结果中的not match。你知道我应该如何修改正则表达式吗 #\{.*?\} 让你的*不贪婪。或者简单地使用 #\{[^}]*\} 我将使用上述方法进行字符串插值。我想捕获{}中的任何内容。你看到过上面的正则表达式不

鉴于以下正则表达式和文本-

regex - #\{.*\}
text - "abc #{:abc :cde} dont-mtach #{:xyz :wqt} do-not do-not-not")
我只想在结果中获得
{:abc:cde}{:xyz:wqt}
。但是,上面也给出了结果中的
not match
。你知道我应该如何修改正则表达式吗

#\{.*?\}
让你的
*
不贪婪。或者简单地使用

#\{[^}]*\}

我将使用上述方法进行字符串插值。我想捕获{}中的任何内容。你看到过上面的正则表达式不起作用的例子吗?@murtaza52它在任何情况下都会起作用,除非{}like里面有更多的
{}
{asdas{asd}asd}
谢谢,这不是我期望的用例,所以它应该会起作用。作为一个正交问题,我打算使用上面的#{}来插值作为shell命令的字符串。您是否发现与shell替换语法有任何冲突?(我不是一个shell编程专家,因此证实了这一点)如果我只想从括号中提取,正则表达式将如何改变。ie在{}中获取所有内容,而不使用散列和括号。@murtaza52您可以使用
{(.*)\
并抓取
组1
,或者如果支持前瞻
(?)?