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

Переместите все это в kernel.php, если только вышеприведенный метод не сработал для вас, помните, что вы должны переместить все эти строки в kernel.php в дополнение к вышеупомянутому решению

позвольте мне сначала отобразить так оно и есть в файле уже ..

protected $middleware = [

    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
];

/**
 * The application's route middleware groups.
 *
 * @var array
 */
protected $middlewareGroups = [
    'web' => [
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        \App\Http\Middleware\VerifyCsrfToken::class,
    ],

    'api' => [
        'throttle:60,1',
    ],
];

Теперь то, что вам нужно сделать, это

protected $middleware = [
    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
     \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        \App\Http\Middleware\VerifyCsrfToken::class,
];

/**
 * The application's route middleware groups.
 *
 * @var array
 */
protected $middlewareGroups = [
    'web' => [

    ],

    'api' => [
        'throttle:60,1',
    ],
];

, т. Е.

enter image description here

12
задан 14 June 2009 в 05:08
поделиться

4 ответа

Библиотеки повышения обычно являются хорошим выбором, в данном случае Boost.Regex . Есть даже пример разделения строки на токены, которые уже делают то, что вы хотите. В основном это сводится к следующему:

boost::regex re("[\\sXY]+");
std::string s;

while (std::getline(std::cin, s)) {
  boost::sregex_token_iterator i(s.begin(), s.end(), re, -1);
  boost::sregex_token_iterator j;
  while (i != j) {
     std::cout << *i++ << " ";
  }
  std::cout << std::endl;
}
17
ответ дан 2 December 2019 в 07:22
поделиться

Если вы хотите свести к минимуму использование итераторов и уточнить свой код, должно работать следующее:

#include <string>
#include <iostream>
#include <boost/regex.hpp>

int main()
{
  const boost::regex re("[\\sXY,]+");

  for (std::string s; std::getline(std::cin, s); ) 
  {
    std::cout << regex_replace(s, re, " ") << std::endl;   
  }

}
2
ответ дан 2 December 2019 в 07:22
поделиться

В отличие от Perl, регулярные выражения не «встроены» в C ++.

Вам необходимо использовать внешнюю библиотеку, такую ​​как PCRE .

1
ответ дан 2 December 2019 в 07:22
поделиться

Регулярные выражения являются частью TR1, включенного в Visual C ++ 2008 SP1 (включая экспресс-выпуск) и G ++ 4.3.

Заголовок - , а пространство имен std :: tr1 . Отлично работает с STL.

Начало работы с регулярными выражениями C ++ TR1

Стандартная библиотека Visual C ++: Регулярные выражения TR1

1
ответ дан 2 December 2019 в 07:22
поделиться
Другие вопросы по тегам:

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