В версии для Windows (вероятно, в Linux также), можно дергать в систему, скопировать/вставить буферизуют использование "*y
(т.е. предыдущий команда рывка с двойными кавычками и звездочкой).
можно тогда обычно удалять заменимые строки и вставлять скопированный текст с помощью "*p
.
Попробуйте упреждающие утверждения:
(?=.*one)(?=.*two)(?=.*three)
Но было бы лучше, если бы вы использовали три отдельных регулярных выражения или более простые операции поиска по строкам.
Единственная причина сделать это за одно - это если вам нужно найти их в определенном порядке.
В этом нет ничего хорошего. Вы можете довольно легко сопоставить три вхождения любого из задействованных слов:
(?:\b(?:one|two|three)\b.*){3}
, но это соответствует «один, один, один» так же легко, как «один, два, три».
Вы можете использовать утверждения с опережением, подобные описанию Гамбо. Или вы можете записать перестановки, например:
(?\bone\b.*\btwo\b.*\bthree\b|\btwo\b.*\bone\b.*\bthree\b|\bone\b.*\bthree\b.*\btwo\b|\bthree\b.*\bone\b.*\btwo\b|\bthree\b.*\btwo\b.*\bone\b|\btwo\b.*\bthree\b.*\bone\b)
, что явно ужасно.
Короче говоря, намного лучше провести три отдельных совпадения.