这是我的输入字符串:

string MyS = "program{anything}";


我想匹配括号内的所有内容,因此我使用了此正则表达式:

regex MyR("program{(.*)}");


比赛是(我需要)=

program{anything}
anything


这是真的,但是当我将字符串更改为

string Mys = "program{
anything line1
anything line2
}";


有了这个正则表达式,我没有得到我希望的:

anything line1
anything line2


也就是说,我想捕获所有行中的所有内容。

我应该使用什么正则表达式在一个matchs元素中获取{}中的所有内容?

最佳答案

首先,在量词?后面添加*,否则它也可能匹配两个结果之间的项目。 {anything} bla bla bla {somethingelse}可能匹配anything} bla bla bla {somethingelse或者,使用[^}]代替通配符.

说到女巫,通配符.不包含换行符。使用[^}]代替,还包括换行符。

program{([^}]*?)}应该做得很好。

09-30 21:53