什么是 CTRE 中负面回顾(未实施)的替代方案?
What is an alternative to the negative lookbehind (that's not implemented) in CTRE?
我正在尝试匹配字符串中包含单词的部分。
例如:[This]
。我想匹配 [This]
,但只有当它前面的字符不是反斜杠时,例如,不是这个 \[This]
.
for (auto match: ctre::range<R"((((?<!\))\[[^\]]*\])">(input)) {
// you can use match.str() here
}
通常我会使用的正则表达式是这样的:
(((?<!\))\[[^\]]*\])
..但是,根据 this 评论和收到的 ctre::problem_at_position<5>
,似乎它在今天的 CTRE 中不受支持。
有没有办法在没有实现的情况下做我想做的事情?
正则表达式如下:
(?:^|[^\])(\[[^\]]*\])
其中:
(?:^|[^\])
是一个 non-capturing 组,它使用交替 (|
) 在 ^
(字符串的开头)或 [^\]
(不是反斜杠的任何字符)。
(\[[^\]]*\])
捕获所需的模式。
我正在尝试匹配字符串中包含单词的部分。
例如:[This]
。我想匹配 [This]
,但只有当它前面的字符不是反斜杠时,例如,不是这个 \[This]
.
for (auto match: ctre::range<R"((((?<!\))\[[^\]]*\])">(input)) {
// you can use match.str() here
}
通常我会使用的正则表达式是这样的:
(((?<!\))\[[^\]]*\])
..但是,根据 this 评论和收到的 ctre::problem_at_position<5>
,似乎它在今天的 CTRE 中不受支持。
有没有办法在没有实现的情况下做我想做的事情?
正则表达式如下:
(?:^|[^\])(\[[^\]]*\])
其中:
(?:^|[^\])
是一个 non-capturing 组,它使用交替 (|
) 在^
(字符串的开头)或[^\]
(不是反斜杠的任何字符)。(\[[^\]]*\])
捕获所需的模式。