gpt4 book ai didi

c++ - 如何使 std::regex 在字符串中的特定位置开始匹配?

转载 作者:搜寻专家 更新时间:2023-10-31 01:51:06 26 4
gpt4 key购买 nike

C# 的 Regex.Match method has an overload允许匹配从特定偏移量开始。

如何使 std::regex 在字符串中的指定位置开始匹配?

关于天真的解决方案的注意事项:

不,我不能只传递一个从该位置开始的子字符串——前缀可能会改变一切。

例如,前缀可能表示给定位置不是新行的开始,而如果我切断字符串,它会看起来像一个新行,我会得到一个需要检测换行符的模式不正确匹配。后视等也存在同样的问题。

最佳答案

关键是您要使用匹配标志来指定迭代器是更大字符串的一部分。

您需要使用按照@ildjarn 的建议进行改进的迭代器,然后使用标志 std::regex_constants::match_prev_avail 指定迭代器 --first 是可取消引用的。这将允许正则表达式匹配器使用紧邻的前一个元素作为其测试的一部分。

关于c++ - 如何使 std::regex 在字符串中的特定位置开始匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14203633/

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