【发布时间】:2016-09-22 17:46:57
【问题描述】:
在 JS 正则表达式中,符号 ^ 和 $ 指定 字符串的开始和结束。只有使用/m 修饰符(多行模式),它们才匹配行首和行尾 - CR/LF 之前和之后的位置。
但在std::regex/ECMAscript 模式下,符号^ 和$ 始终匹配行首和行尾。
在 std::regex 中有什么方法可以定义 字符串的开始和结束 匹配点吗?换句话说:支持 JavaScript 多行模式...
【问题讨论】:
-
重点是
^和$匹配字符串的开头和结尾。见ideone.com/amatBf 和ideone.com/0D7eS7 -
@WiktorStribiżew 好的,如何修改
^和$的样本以匹配行的开始/结束? -
我已经提到:行尾是
(?=\n|$),行首只能是(^|\n)这样的消费模式。这很不舒服,我知道。如果您确实需要^/$的多行行为,则切换到 Boost 正则表达式可能是最佳选择。
标签: c++ regex c++11 std multiline