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

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

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

16 ответов

19 просмотров

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

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)

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

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

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
DS
8
Карта сайта