【发布时间】:2010-11-12 06:13:43
【问题描述】:
我需要 C++ 或 Java 的解决方案。有标准函数吗?
【问题讨论】:
我需要 C++ 或 Java 的解决方案。有标准函数吗?
【问题讨论】:
在java中: http://java.sun.com/docs/books/tutorial/essential/regex/bounds.html
您可以使用“\b”字边界。
P.S.:当你编译它时,请记住 scape 斜线: 例如:找到“狗”这个词 --> Pattern p = Pattern.compile("\bdog\b");
【讨论】:
在 C++ 中,您可以在
中使用正则表达式std::tr1::regex
如果您的编译器是最新的。正则表达式默认支持大小写匹配。使用 \b 单词边界,您应该只能找到整个单词。
【讨论】:
没有一个函数可以做到这一点。对于简单的情况,这仍然相当简单:在内存中获取文件(例如std::vector<char> buff(file_begin_iter, file_end_iter);),然后找到你想要的。 (std::search)
【讨论】:
对于 Java,请参阅 Pattern。您可以使用\b 和\B 来匹配单词边界。可以使用 CASE_INSENSITIVE 标志启用/禁用区分大小写。
【讨论】:
在 C++ 中没有标准的函数可以做到这一点——你需要自己动手。这种明显的缺乏是因为大写和小写的概念,实际上是单词的概念,比最初看起来要复杂得多。最好的办法是使用正则表达式库,例如 Boost 附带的库。
【讨论】: