我目前正在尝试如何在C ++中使用Regex来获得更高级的东西,比如创建我自己的编码语言(只是为了它的乐趣)而且我在阅读时遇到了一些问题代码范围。
我目前正在使用此文本来测试我的正则表达式,
private char test;
public static int foo = 0;
private int var = 0;
private void run(char data, int add)
{
var += 50 + add;
print (var + test, asdm, asf.getString());
if (var == 70) {
print("yes");
}
}
我正在使用的正则表达式用于读出运行范围及其中的if语句,
\{([\S\s]*?)\}
这就是它匹配atm
{
var += 50 + add;
print (var + test, asdm, asf.getString());
if (var == 70) {
print("yes");
}
问题在于它在实际需要之前找到了},我想知道是否有办法解决这个问题,并将每个范围作为自己的一部分来捕捉。< / p>
我已尝试搞乱环回,但我一直收到错误&#39;表达式包含不匹配(和)&#39;即使它应该是有效的正则表达式。编辑,我发现正则表达式的c ++版本(默认版本)不支持lookbehind,这就是为什么它没有用。