如何从 VC++ 中的 std::regex 获取带有模式的字符串2010年

发布于 2024-10-08 07:57:53 字数 363 浏览 5 评论 0原文

我可以从 std::regex 获取带有正则表达式的字符串吗?或者如果我以后想使用它,我应该将其保存在其他地方吗?

在 boost 中你可以这样做:

boost::regex reg("pattern");
string p = reg.str();

或者使用 <<运算符

cout << reg; 将打印模式

但在 std::regex 中没有 str() 或运算符<<。我应该将字符串保存在其他地方还是找不到它?

在调试器中我可以看到 std::regex 中的内容。

Can I get the string with regular expression from std::regex? Or should I save it somewhere else if I want to use it later?

In boost you can do this:

boost::regex reg("pattern");
string p = reg.str();

or use << operator

cout << reg; will print pattern.

but in std::regex there is no str() or operator<<. Should I save my string somewhere else or I just can't find it?

In debugger I can see what's in std::regex.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

痴情 2024-10-15 07:57:53

我刚刚查看了 N3225 第 28.4 节(标题 概要),实际上,basic_regex 模板没有成员函数 str,并且没有提供operator<<

第 28.8/2 段对此提供了一些见解:

类型特化的对象
basic_regex 负责
转换 charT 的序列
反对内部表示
没有具体说明这个形式是什么
表现方式,也不是它是怎样的
由运行的算法访问
正则表达式。

我的理解是,标准要求 basic_regex 可以从 const charT * 构造,但不要求实现保留该字符串。

I just looked in N3225, section 28.4 (header <regex> synopsis) and indeed, the basic_regex template has no member function str, and there are no operator<< provided.

The paragraph 28.8/2 provides a little insight on this :

Objects of type specialization of
basic_regex are responsible for
converting the sequence of charT
objects to an internal representation.
It is not specified what form this
representation takes, nor how it is
accessed by algorithms that operate on
regular expressions.

What I understand is that the standard mandates that basic_regex can be constructed from const charT * but does not require the implementation to keep this string.

对你的占有欲 2024-10-15 07:57:53

MSDN 文档似乎表明没有可公开访问的方法来检索来自构造对象的正则表达式模式,所以我想说你需要自己保存字符串。

The MSDN docs seem to show that there's no publicly accessible way to retrieve the regex pattern from a constructed object, so I would say that you need to save the string yourself.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文