gpt4 book ai didi

c++11 正则表达式提取文本

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:49:58 25 4
gpt4 key购买 nike

我一直在努力研究一些看起来相当简单的事情......起初。

我正在尝试使用正则表达式转换我一直在使用 strstr 进行的文本操作,这似乎是现在使用 c++11 的方式。这是一个测试用例示例:

<!Sometag>
// Lots of code here! (Multiline)
<Sometag!>

<!Sometag2>
// Lots of code here! (Multiline)
<Sometag2!>

编辑:一个更明确的例子。

/// Comments.

<!Vertex>
#version 150
/// code here!
void main()
{
/// code here!
}
<Vertex!>

/// Comments.
<!Fragment>
#version 150
/// code here!

void main()
{
/// code here!
}
<Fragment!>

编辑 2:这是一个更好的例子,说明需要做什么:

regex editor

我已经做了很多组合,但想到的最合乎逻辑的是这个:

std::smatch u;
std::string s = shader->GetData();
std::regex_match(s, u, std::regex("<.*>(.*)<!.*>"));

我还没有运气,我想知道是否有人知道语法可能是什么?!

谢谢

最佳答案

如果你的标签很整洁,你可以试试这样:(?:<[^<>!]*?>\n?)((.|\n)*?)(?:<!.*>(\n|$)?)

需要相应转义到C,当然是:(?:\\<[^<>!]*?\\>\\n?)((.|\\n)*?)(?:\\<!.*\\>(\\n|$)?)

代码本身就是捕获组$1

https://regex101.com/r/vC5xD3/2 (它是 php,但想法仍然存在)。

关于c++11 正则表达式提取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30928091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com