Regex Alternation, возвращающая строку - PullRequest
1 голос
/ 11 февраля 2010

Я отчаянно пытался вернуть текстовую строку в дополнение к захватам групп из регулярного выражения с использованием чередования. Вот что у меня есть;

(?<make>(?:\w*|\w*\s\w*));(?<score1>\d{1,2});(?<score2>\d{1,2});(?<model>\w{1,})(?(model)No|Yes)

Мои данные;

Austin;1;2;Taxi
Audi;2;4;Quattro
BMW;4;5;M3
Ferrari;10;10;F40
Fiat;4;2;Panda

Все группы захвата работают отлично, однако, когда я добавляю оператор чередования (?(model)No|Yes), он не работает, и ничего не возвращается. Я немного застрял и пытался переставить выражение разными способами, приложение Expresso говорит, что последняя часть выражения является условным выражением с предложением да и нет: «совпадение с именем [model] соответствует?»

Любая помощь будет принята с благодарностью!

1 Ответ

2 голосов
/ 11 февраля 2010

Оператор чередования означает: Если именованная группа model соответствует, попробуйте сопоставить No, если нет, то попробуйте найти Yes. Оба терпят неудачу по очевидным причинам. Что вы собираетесь делать с чередованием?

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