Поиск текста с «Совпадение с регистром» и «Совпадение с целым словом» в файле в C ++ или Java - PullRequest
0 голосов
/ 20 июля 2009

Мне нужно решение на C ++ или Java. Есть ли стандартные функции?

Ответы [ 5 ]

3 голосов
/ 20 июля 2009

В C ++ нет стандартных функций для этого - вам нужно свернуть свои собственные. Этот очевидный недостаток объясняется тем, что концепция прописных и строчных букв, а также слов, намного сложнее, чем может показаться на первый взгляд. Лучше всего использовать библиотеку регулярных выражений, например, ту, которая поставляется с Boost.

2 голосов
/ 20 июля 2009

Для Java см. Pattern . Вы можете использовать \b и \B для соответствия границ слов. Чувствительность к регистру можно включить / отключить с помощью флага CASE_INSENSITIVE.

1 голос
/ 20 июля 2009

Нет единой функции, которая будет делать именно это. Это все еще довольно тривиально для простых случаев: получить файл в памяти (например, std::vector<char> buff(file_begin_iter, file_end_iter);), а затем найти то, что вы хотите. (std::search)

0 голосов
/ 23 октября 2009

в яве: http://java.sun.com/docs/books/tutorial/essential/regex/bounds.html

Вы можете использовать границу слова "\ b".

P.S .: когда вы компилируете его, помните косую черту: В кн .: Чтобы найти слово «собака» -> Pattern p = Pattern.compile ("\ bdog \ b");

0 голосов
/ 20 июля 2009

В C ++ вы можете использовать регулярные выражения в

std::tr1::regex 

если ваш компилятор обновлен. Регулярные выражения поддерживают регистр соответствия по умолчанию. Используя \ b границы слов, вы сможете найти только целые слова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...