使用C ++或Java在文件中搜索“匹配大小写”和“匹配整个单词”

时间:2009-07-20 09:21:09

标签: java c++ search text

我需要一个C ++或Java解决方案。有标准功能吗?

5 个答案:

答案 0 :(得分:3)

在C ++中没有标准的功能 - 你需要自己动手。这种明显的缺乏是因为大写和小写的概念,实际上是单词的概念,比它看起来要复杂得多。最好的办法是使用正则表达式库,例如Boost附带的库。

答案 1 :(得分:2)

对于Java,请参阅Pattern。您可以使用\b\B来匹配字边界。可以使用CASE_INSENSITIVE标志启用/禁用区分大小写。

答案 2 :(得分:1)

没有任何一项功能可以完全实现。对于简单的情况,它仍然相当简单:将文件存入内存(例如std::vector<char> buff(file_begin_iter, file_end_iter);),然后找到你想要的内容。 (std::search

答案 3 :(得分:0)

在C ++中,您可以在

中使用正则表达式
std::tr1::regex 

如果您的编译器是最新的。正则表达式默认支持匹配大小写。使用\ b Word边界,您应该只能找到整个单词。

答案 4 :(得分:0)

在java中: http://java.sun.com/docs/books/tutorial/essential/regex/bounds.html

您可以使用“\ b”字边界。

P.S。:当你编译它时,记住斜线: 在例如:找到'狗'这个词 - &gt;模式p = Pattern.compile(“\ bdog \ b”);