Другие ответы здесь показывают некоторые способы, которыми вы можете исказить различные варианты регулярных выражений, чтобы сделать это, хотя я думаю, что получается, что ответ, как правило, «не делайте этого».Такие регулярные выражения гораздо сложнее для чтения и, вероятно, медленнее, чем просто объединение двух регулярных выражений с использованием логической логики любого языка, который вы используете.Если вы используете команду grep
в приглашении оболочки Unix, просто перенаправьте результаты одного на другой:
grep "alpha" | grep -v "beta"
Я использую этот вид конструкции все время, чтобы отсеять чрезмерные результаты отgrep
.Если у вас есть представление о том, какой набор результатов будет меньше, поместите его сначала в конвейер, чтобы получить наилучшую производительность, поскольку вторая команда должна обрабатывать только выходные данные первого, а не весь ввод.