Увеличить исключение Wregex, неправильный синтаксис регулярных выражений? - PullRequest
0 голосов
/ 29 октября 2010

Я импортировал библиотеку Boost в .dll, которую я использую. Я пытаюсь разобрать строку, используя:

boost::wregex regPlayerAtSeat(L"*Governor: Seat.?[1-9].*");

Но все, что я получаю, это исключение службы взаимодействия. Синтаксис моего регулярного выражения неправильный?

Спасибо, Р.

1 Ответ

1 голос
/ 29 октября 2010

Первый * не имеет никаких символов перед ним.В регулярных выражениях он действует как квантификатор , а не подстановочный знак, как в командной строке UNIX и так далее.Вы, вероятно, хотите что-то вроде .* вместо него, но это отчасти только предположение.Тогда полное регулярное выражение будет выглядеть так:

boost::wregex regPlayerAtSeat(L".*Governor: Seat.?[1-9].*");

.* будет соответствовать нулю или более повторений (почти) любого символа (возможно, не переводы строки, но я не знаювнутренняя работа двигателя Boost Regex).Это то, что вы собирались в начале вашей строки?Кроме того, поскольку вы не привязали свое регулярное выражение, вы можете просто использовать:

boost::wregex regPlayerAtSeat(L"Governor: Seat.?[1-9]");

Однако это будет зависеть от того, что именно вы пытаетесь сопоставить, и в каком формате.1014 *

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