【发布时间】:2017-09-16 02:51:09
【问题描述】:
我正在使用以下模式:
(?<=<)(?<!>).*?q.*?(?!<)(?=>)
它使用正负前瞻和后瞻来匹配包含在匹配括号中的文字 q。
std::regex 不支持后视。那么有什么好的选择呢?
【问题讨论】:
-
如果同一行中有多个
<...>子字符串,这是一种非常奇怪的模式。如果你仍然需要这个正则表达式,你可以使用<(.*?q.*?)>并获取smatch_obj.str(1)。但是,<([^>q]*q[^>]*)>的性能会更好,也会更精确。 -
boost支持
标签: regex string c++11 regex-lookarounds