@IWakd

Как сделать корректный вывод измененной регуляркой строки?

Есть код:
#include<iostream>
#include<string>
#include<regex>
using namespace std;
int main()
{
    string str;         //объявление строки для изменения
    cout<<"Enter string : ";getline(cin, str);       //ввод строки
    regex regular("(www.\\w+\\.\\w+)|(http""s?://""\\w+\\.\\w+)|(^.+@.+\\..+$)");   
    cout<<"Modified string : "<<regex_replace(str, regular, " ***** ")<<endl;         //вывод измененной строки
}

В вывод попадают просто звездочки, она должна менять на звезды ссыкли типа www.expamp.com,http(s)://example.com,
и email ы.
  • Вопрос задан
  • 62 просмотра
Пригласить эксперта
Ответы на вопрос 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
В вывод попадают просто звездочки, она должна менять на звезды ссыкли типа www.expamp.com, http(s)://example.com, и email ы.

Ну так а что? Первые два класса эта регулярка меняет, в e-mail адресах последняя .+$ матчит строку до конца. Как написано -- так и работает.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы