Rust正则表达式:匹配字符串的开头和"不匹配"字符串的结尾

时间:2018-04-03 17:16:08

标签: regex visual-studio-code

我试图在代码库中找到所有我们有不明确格式说明符的地方。

例如:

int64_t fixed_size_type;
printf ("Ambiguous replacement value: %lld", fixed_size_type);

结果是:

format '%lld' expects argument of type 'long long int', but argument 5 has type 'int64_t {aka long int}' [-Wformat=]

我正在使用正则表达式搜索代码库,我希望找到%lld的所有值,其值尚未转换为(long long)

使用 VSCode 搜索标签,我可以使用以下方式找到所有适当的演员事件:

%lld.*(\(long long\))

但是,我不知道如何让它向我显示(long long)不存在的字符串?

当我尝试:

%lld(?!.*\(long long\))

VSCode 给出了以下错误消息:

Error parsing regex near 'lld(?!.*\(' at character offset 6: Unrecognized flag: '!'. (Allowed flags: i, m, s, U, u, x.)

我已经尝试了几个在类似问题的论坛中看到的例子,我试图使用正则表达式文档来加密这些例子;一切都没有用。

大多数示例建议您使用负向前瞻或后视来检查(long long)子字符串是否存在。我以为括号成了一个块。为什么我们不能使用我只是用正向逻辑否定一个块。

不幸的是,当您使用正则表达式的工作经验很少时,很难理解正则表达式处理和语法。

  

注意: The duplicate suggestion提供了一个很好的解释,说明为什么它不能在 VSCode 中工作,但它仍然没有'提供我的问题的解决方案。

0 个答案:

没有答案