Принятие Вас имеет объект "конфигурации", который Вы стремитесь устанавливать с флагами и подходящим синтаксическим анализатором командной строки, который заботится о парсинге командной строки, и предоставьте постоянный поток опций, здесь идет блок псевдокода
while (current_argument = cli_parser_next()) {
switch(current_argument) {
case "f": //Parser strips the dashes
case "force":
config->force = true;
break;
case "d":
case "delete":
config->delete = true;
break;
//So on and so forth
default:
printUsage();
exit;
}
}
Для Visual Studio 2012 (и более новых версий):
^(?!.*strB).*strA.*$
Объяснение:
^ # Anchor the search at the start of the line
(?!.*strB) # Make sure that strB isn't on the current line
.*strA.* # Match the entire line if it contains strA
$ # Anchor the search to the end of the line
Вы можете добавить (?: \ R \ n)?
в конец регулярного выражения, если вы также хотите удалить символы возврата каретки / перевода строки вместе с остальной частью строки.
Вы бы использовали Отрицательные поисковые пути , но выражение будет очень сложным, если вы не знаете ожидаемую позицию (или даже порядок) терминов. Знаете ли порядок или шаблон?
В противном случае я бы посоветовал вам использовать другой инструмент, который с такой же легкостью мог бы циклически перемещаться (или составлять список) по файлу построчно и выполнять inStr или Contains или другие простые, более быстрые , логические тесты ...
Я предполагаю, что поле поиска действительно принимает обычные регулярные выражения. Использование отрицательного просмотра вперед:
(?!^.*strB.*$)strA
Вам нужно будет установить параметры многострочного ( ^
и $
совпадают в начале / конце строк). Если вы не можете установить его с помощью параметров диалогового окна, попробуйте:
(?m)(?!^.*strB.*$)strA
Вероятно, это режим по умолчанию в этом движке.
Для Visual Studio 2010 (и предыдущих версий):
Поле поиска Visual Studio имеет собственную причудливую версию синтаксиса регулярных выражений. Это выражение работает так, как было запрошено:
^~(.*strB).*strA
^
соответствует началу строки. (Обычно для текстового редактора нет опции «многострочный»; ^
и $
всегда совпадают на границах строк.)
.
соответствует любому символу, кроме новой строки. (В некоторых случаях не существует режима «однострочный» или «все точки», который позволяет точкам сопоставлять символы новой строки.)
~ (...)
- конструкция «предотвращения совпадения», эквивалентная (насколько я могу судить) на отрицательный прогноз ( (?! ...)
), используемый другими респондентами.