0

我想在双引号中查找字符串,但前提是它们在指定函数的调用之外使用foo。例如:

foo("some str1"); // ignore
foo2("another string"); // need this
"simple string"; // need this
foo(L"wide str"); // ignore
#define NAME "name" // need this
int i = foo("must be ignored"); // ignore

我已经尝试过\b(?!foo\()L?"[^"]*"\b这个答案,但它不正确。在一行上使用结束双引号作为在另一行上开始。像这样"); // ignore<CR> foo2("

如果我想我应该包括所有格量化。将不满足的子字符串完全排除在进一步搜索之外。但不知道如何正确地做到这一点。

需要在 Embarcadero RAD Studio XE 中搜索文件,但对 Perl 正则表达式语法中的任何决定感到满意。

重要:想要在foo函数之外找到所有出现的双引号字符串。并且不要被foo.

4

2 回答 2

1

你可以在这里试试:https ://regex101.com/r/mG7gP7/1 我匹配两个场景

  • 搜索函数 not name foo,并匹配引号内的字符串。
  • 引号内没有函数调用的任何文本
于 2015-10-05T13:12:30.597 回答
1

你觉得这个怎么样?

/(^(?!foo\()|\)).*"(.*)"/gm
于 2015-10-05T13:47:25.983 回答