172 похожих чатов

Кто силен в regex? Как написать grep с его помощью

на поиск совпадения трем словам из шаблона? (например Jon, Bob,Dad3)
соответственно строка Dad3,Bob - удовлетворит, а скажем Dad3, Flop, Bass, Bob нет

16 ответов

21 просмотр

нипонятно чот написал ТЗ - три слова по которым выполняется поиск - фиксированные? (одни и те же) или их набор разный?

Oleg
Да, фиксированный

а их порядок произвольный может быть в строке или подряд где-то по ходу строчки?

Oleg- Автор вопроса
yoshi kakbudto
нипонятно чот написал ТЗ - три слова по которым вы...

Порядок произвольный и слова не повторяются

Oleg- Автор вопроса
Oleg- Автор вопроса
yoshi kakbudto
а их порядок произвольный может быть в строке или ...

Я понял, как сделать простое совпадение, тут все довольно понятно - | grep -iE '(John| Bob|Dad3)' А как сделать, что бы ОБЯЗАТЕЛЬНО хотя бы одно было иначе неуд, хз, голову ломаю третий час

Oleg
Порядок произвольный и слова не повторяются

ну раз произвольный - самое тупое это перебрать все варианты перестановок этих слов.: /(.*word1.*word2.*word3)|(.*word1.*word3.*word2)|и т.д./

ну так если необходимо и достаточно одного совпадания - то у тебя все правильно написано. Если не совпадет - выйдет с ошибкой

Oleg- Автор вопроса
yoshi kakbudto
ну так если необходимо и достаточно одного совпад...

Не не, видимо я не правильно сформулировал изначально. В общем, выражение должно совпадать когда строка содержит слова ТОЛЬКО из указанных (даже если в строке только 1 слово из них) и не совпадёт, когда есть хоть одно любое слово не указанное в этих трех, есть ли там сами слова из списка уже не важно.

Oleg
Не не, видимо я не правильно сформулировал изначал...

То есть имеется список из 3 слов. И строка должна содержать только слова из этого списка. Слова из списка в строке должны быть уникальными (нигде по строке не повторяться). ?

Oleg- Автор вопроса
Elenhil
Три грепа в пайп?

Почему 3? Там же через |

yoshi kakbudto
То есть имеется список из 3 слов. И строка должна ...

нифига не понятно но возможно поможет grep -e 'string1' -e 'string2' -e 'string3'

Никита Ярушин
нифига не понятно но возможно поможет grep -e 'str...

ну суть в том что есть файл с паттернами поиска (вот эти три слова) и вывод git diff содержащий список файлов. Если в выводе есть что-то что не совпадает с паттернами, то и т.д... Ключ -f в grep как раз и ссылается на файл паттернов (который в данном случае "-", т.е. stdin)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта