gpt4 book ai didi

c++ - 重复特定的正则表达式模式

转载 作者:行者123 更新时间:2023-11-30 05:31:13 26 4
gpt4 key购买 nike

我有一个正则表达式模式:

boost::regex regex = "@ABC-\\d+"  

这表示以@ABC- 开头并后跟一位或多位数字的模式。
我希望此模式能够匹配此模式一次或多次,即:

boost::regex regex = "@ABC-\\d+@ABC-\\d+@ABC-\\d+@ABC-\\d+etc, etc"  

最佳答案

使用 grouping construct 并应用 quantifier ,并使用 ^$ anchors 确保整个字符串与模式匹配:

例子:

R"(^(@ABC-\d+)+$)"

或者 - 使用 non-capturing group永远不会在内存缓冲区内创建捕获(此分组结构旨在仅对子模式进行分组以匹配字符串序列):

R"(^(?:@ABC-\d+)+$)"
^^

如果字符串可以为空,将最后的+替换为*:R"(^(@ABC-\d+)*$)".

请注意,在 C++ 中,在声明正则表达式模式时首选原始字符串文字以避免过多的反斜杠。

关于c++ - 重复特定的正则表达式模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35651309/

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