gpt4 book ai didi

c++ - C++ 中的正则表达式

转载 作者:行者123 更新时间:2023-11-28 08:01:35 24 4
gpt4 key购买 nike

现在我有两个正则表达式可以做到这一点:

Regex-1 = "(\\{(\\w+)\\})";
Regex-2 = "(\\{([^\\|]*)\\|([^\\|]*)\\|([^\\|]*)\\})";

我只是希望能够将两个 Regex 合并为一个,以便 Regex 搜索到的第一个匹配。

概念上我在想regex-1 ||正则表达式 2。有可能把它们结合起来吗?

谢谢。

最佳答案

你是说这样?

Regex-1_2 = "(\\{(\\w+)\\})|(\\{([^\\|]*)\\|([^\\|]*)\\|([^\\|]*)\\})";

编辑:

那么,是这样的吗?

{(((\w+)|({\w+}))\|?)*}

编辑 2:

您最后的评论很有帮助。所以,从头到尾工作。你知道你想要匹配左大括号,所以这部分很简单:

{

现在,在第一个大括号之后,有两个选项。将有一个或多个字母数字(或下划线)字符,或者将有三组零个或多个字符,由竖线分隔。前两组必须是非管道字符,而最后一组必须是非大括号字符(因为大括号将关闭表达式)。这可以使用交替结构来表达:

{(\w+|[^|]*\|[^|]*\|[^}]*)

最后,表达式以大括号结束:

{(\w+|[^|]*\|[^|]*\|[^}]*)}

这适用于您提供的示例。如果您的规则不同或更具体,则需要说明。

关于c++ - C++ 中的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11321366/

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