我在我们代码的一个公共(public) header 中发现了 using namespace std;
,我想将其删除。
因此,我需要用 std::vector
替换我代码中出现的所有 vector
。
我需要写一个表达式来 grep 它,忽略以下情况:
std::vector
// comment with a vector
"string with a vector"
这样我就不会像这样更换它们了
std::std::vector
// comment with a std::vector
"string with a std::vector"
到目前为止,我已经成功地使用表达式忽略了 ''std::vector'' 的情况
grep "^[^:]*vector" *.h
但我在撰写否定词时遇到问题,例如:
- 找到“X”但找不到“YX”或“Y。 *X”
有人可以帮忙吗?
最佳答案
你可能会称之为作弊,但我只是将所有 std::vector
替换为 std::fector
,替换所有 vector
通过 std::vector
然后将所有 std::fector
替换回 std::vector
。
这不是很酷,但对于一次性解决方案来说,它可能比构建复杂的表达式更快地解决您的问题。单独考虑表达式比只做它需要更长的时间。
确保你的程序没有使用 std::fector :)
关于c++ - 如何grep 'vector'而不是 'std::vector',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18717108/