这是我的输入字符串:
string MyS = "program{anything}";
我想匹配括号内的所有内容,所以我使用了这个正则表达式:
regex MyR("program{(.*)}");
匹配是(我需要的)=
program{anything}
anything
这是真的,但是当我将字符串更改为
string Mys = "program{
anything line1
anything line2
}";
使用这个正则表达式我没有得到我所希望的:
anything line1
anything line2
也就是说,我想捕获所有行中的所有内容。
我应该使用什么正则表达式来获取一个匹配元素中 {}
中的所有内容?
最佳答案
首先,在量词 *
之后添加 ?
,或者它也可能匹配两个结果之间的项目。 {anything} bla bla bla {somethingelse}
可能会匹配 anything} bla bla bla {somethingelse
或者,使用 [^}]
代替通配符.
说到女巫,通配符.
不包含换行符。使用 [^}]
代替,也可以包含换行符。
program{([^}]*?)}
应该很好。
关于c++ - 如何使用正则表达式捕获多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31300577/