Какой обычно алгоритм построения парсинга строки применяется если нужно выполнить такие условия:
1. Существует несколько критериев поиска в строке. Пример:
а) Определить существует ли в строке слово "market" и НЕ существует слова "closed".
б) Определить существует ли в строке слово начинающиеся на слово "cut", то есть критерий "cut*".
в) Определить существует ли в строке слово имеющее в середине подстроку "cut", например "exeCUTive".
И тому подобное.. короче говорят есть набор критериев. Первое что приходит на ум, перебирать все критерии и как только встретится условие удовлетворящее какому то, закончить парсинг и выдать ответ.
Есть ли какие то методы, которые бы ускорили бы такой поиск? Поможет ли multithreading в этом случае? типа каждый критерий обрабатывать в отдельном треде?
Подкинтье любые идеи по этому поводу. Благодарен
Отпарсить строку, несколько критериев
-
- Уже с Приветом
- Posts: 2013
- Joined: 16 Mar 2002 10:01
- Location: New York City
-
- Уже с Приветом
- Posts: 3982
- Joined: 13 Jul 2000 09:01
- Location: SVX -> BOS -> BUR -> SJC
1. Посмотрите для начала, например, вот здесь: http://algolist.manual.ru/ Очень неплохой источник частовстречаемых алгоритмов.
2. Мултитреадинг может быть и поможет, если есть несколько процессоров. На одном процессоре даже теоретически нет выигрыша. Да и вряд ли удастся хорошо распараллелить задачу. Кстати, есть оценки на длину строки, количество и сложность одновременно анализируемых критериев?
2. Мултитреадинг может быть и поможет, если есть несколько процессоров. На одном процессоре даже теоретически нет выигрыша. Да и вряд ли удастся хорошо распараллелить задачу. Кстати, есть оценки на длину строки, количество и сложность одновременно анализируемых критериев?
I hated LA
-
- Уже с Приветом
- Posts: 695
- Joined: 26 Mar 1999 10:01
- Location: Moscow -> Rockville, MD -> Muenchen
Использoвать pcre библиотеку и написать
правильние patterns, может и одного будет достаточно.
http://www.pcre.org/
правильние patterns, может и одного будет достаточно.
http://www.pcre.org/
Du glaubst zu schieben, und du wirst geschoben. (c) Goethe
-
- Уже с Приветом
- Posts: 932
- Joined: 18 Mar 2000 10:01
- Location: Seattle
-
- Уже с Приветом
- Posts: 2013
- Joined: 16 Mar 2002 10:01
- Location: New York City
-
- Уже с Приветом
- Posts: 1071
- Joined: 18 Nov 2003 22:53
- Location: MA
-
- Уже с Приветом
- Posts: 956
- Joined: 04 Mar 2002 10:01
-
- Уже с Приветом
- Posts: 2013
- Joined: 16 Mar 2002 10:01
- Location: New York City
-
- Уже с Приветом
- Posts: 446
- Joined: 04 Jan 2002 10:01
- Location: Irkutsk->Rockville, MD->Dallas, TX
-
- Уже с Приветом
- Posts: 2013
- Joined: 16 Mar 2002 10:01
- Location: New York City
-
- Уже с Приветом
- Posts: 446
- Joined: 04 Jan 2002 10:01
- Location: Irkutsk->Rockville, MD->Dallas, TX
uniqueman wrote:ни разу не использовал regexpr, но слышал про них. Единственный вопрос.
Мне надо не просто найти какое то слово в тексте и определить также его положение в строке, то бишь если я задал найти слово "market", мне надо чтобы вернулось позиция первого символа в строке.
Возможно ли это через regexpr?
Да.