Форум программистов, компьютерный форум, киберфорум
Наши страницы

Регулярные выражения - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Книги или справочники для опытных(или проффесиональных) программистов! http://www.cyberforum.ru/cpp-beginners/thread159344.html
Пожалуйста, Подскажите книги или справочники для опытных и проффесиональных программистов! Особенно хотелось бы найти: 1) полный справочник по STL( желательно на русском ) или любые другие...
C++ Класс внутри класса - возможно ли? Всем привет! Помогите, пожалуйста, понять следующий текст задания: Расширьте содержание класса employee /*2 объекта и 2 метода*/ из упражнения 4, включив в него класс date и перечисление... http://www.cyberforum.ru/cpp-beginners/thread159330.html
Описать формулу C++
Ребят кто знает как описать такую формулу:
C++ Циклы
Воозникли трудности. Можете помочь ?) Необходимо протабулировать функции, зависящее от 2 переменных или от нескольких параметров. Результаты табулирования оформить в виде одной таблицы или...
C++ Отладка программы. http://www.cyberforum.ru/cpp-beginners/thread159318.html
Для заданного а вычислить f(a), где f(x) задана графиком ( график во вложении) . Вопрос: как сделать так, что бы после введения аргумента, программа не закрывалась и не давала свой ответ после...
C++ Как определить обурудование компьютера? Как так сделать?или скопировать из диспетчера устройств Windows.Может есть специальная функция?помогите плиз подробнее

Показать сообщение отдельно
alex_x_x
бжни
2450 / 1655 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
16.08.2010, 01:10
на си

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdio.h>
#include <assert.h>
 
const char* origin = "http://.moikrug.ru", *str = "http http://http://hello.world.moikrug.ru.krug.moikrug.ru";
const unsigned BEGIN = 0, END_HTTP = 6, DOMEN = 7, END = 17;
 
void find_recurs( unsigned pos, unsigned state, unsigned start_dom, unsigned end_dom ){
  for( ; str[pos] ; ++pos ){
    if( BEGIN == state && origin[state] == str[pos] ){
      find_recurs( pos+1, BEGIN+1, 0, 0 );
    }else if( state>BEGIN && state<=END_HTTP ){
      if( origin[state] != str[pos] ){
        return;
      }else{
        if( END_HTTP == state++ ){ 
          start_dom = pos+1; 
        }
      }
    }else if( DOMEN == state && origin[state] == str[pos] ){
      find_recurs( pos+1, DOMEN+1, start_dom, pos );
    }else if( state>DOMEN && state <= END ){
      if( origin[state] != str[pos] ){
        return;
      }else{
        if( END == state++ ){ 
          assert( start_dom && end_dom && end_dom>start_dom );
          fwrite( str + start_dom, end_dom - start_dom, 1, stdout );
          putc( '\n', stdout );
          return;           
        }
      }      
    }
  }
}
 
 
int main(){
  find_recurs( 0, BEGIN, 0, 0 );
  return 0;
}
[alexxx@localhost ~]$ ./a.out
http://hello.world
http://hello.world.moikrug.ru.krug
hello.world
hello.world.moikrug.ru.krug

Добавлено через 51 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
#include <boost/regex.hpp>
#include <string>
#include <iostream>
 
int main(int argc, char* argv[]) 
{ 
        boost::regex e(".*http://(.*)\\.moikrug\\.ru.*",boost::regex::perl|boost::regex::icase); 
        std::string str = "hello world!!!dferwerer ewrewr [url]http://hell.is.here.moikrug.ru[/url] 23434"; 
        std::cout << regex_replace(str, e, "$1"); 
        return 0; 
}
можно так, но так неинтересно))
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru