gpt4 book ai didi

c++ - 是否可以在正则表达式中命名子模式,然后通过 C++ 中的子模式名称提取匹配项?

转载 作者:行者123 更新时间:2023-11-30 01:54:55 24 4
gpt4 key购买 nike

是否可以在正则表达式中命名子模式,然后在 C++ 中通过子模式名称提取匹配项?

例如,我可以使用这样的正则表达式:text bla bla PLACE delimiter bla bla TIME

然后将该正则表达式与一个字符串进行匹配,如果匹配,则可以执行以下操作:

smatch sm;
sm[PLACE] or sm[TIME]

编辑:据我了解,这在 C++11 的标准正则表达式中不可用, 但是 boost regex 有这个功能。

我的另一个问题是,如果 PLACE 有多个匹配项怎么办?

最佳答案

这些称为命名捕获组,它们在此处描述:

http://www.regular-expressions.info/named.html

只有一些正则表达式引擎支持它们。 C++ 没有具体提到,但如果它使用 PCRE 7.2 或更高版本,它应该支持它们。如果您的正则表达式引擎不支持它们,您将不得不坚持使用传统的编号捕获组。

关于c++ - 是否可以在正则表达式中命名子模式,然后通过 C++ 中的子模式名称提取匹配项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21308208/

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