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

Ребят кто шарит в регулярных выражениях подскажите пж есть pattern =

r'[/$]word1[/$]|[/$]word2[/$]'
он вылавливает все слова /word1/ или /word2/, например если применить метод findall(pattern, '/word1/ aa /word2/) он выдаст [/word1/, /word2/].
Но проблема в том, что если применить метод findall(pattern, /word1/word2/), то он найдет только word1, так как перед word2 он не видит /, потому что этот / идет в /word1/. Как сделать так чтобы в строке /word1/word2/ находились два этих слова?

13 ответов

12 просмотров

Regex online, первая ссылка Гугла, там наглядно можно проанализировать как что работает

https://regex101.com/r/O5PpHi/1

чёт сложно сделать именно так, матчить /word1/word2/ но не матчить /word1/word1/ https://regex101.com/r/O5PpHi/2

Тимур- Автор вопроса

матчить /word1/word1/ можно

Тимур- Автор вопроса

спасибо, работает вроде

Тимур- Автор вопроса

а что если нужно не на двух, а на другом количестве слов это проделать? просто добавить |word3 не работает

в двух местах надо добавлять, можно еще вот так`([/$])(word1|word2)\1((word1|word2)\1){0,5}` - где матчитсяпервое слово, а {0,5} - это может быть матчится еще от 0 до 5 слов (итого 1-6 слов разделенных одним разделителем)

Тимур- Автор вопроса

а если вместо ? добавить + то норм?

Тимур- Автор вопроса

а как мне быть с пробелом? https://regex101.com/r/2SyB4Z/1 не работает в том случае, когда слово стоит в начале строки или в конце

Тимур- Автор вопроса

у меня в коде было (?:^|[/$]|$) и тогда работало

мне пока сложно, по сути пробельный разделитель надо обрабатывать отдельно. можешь спросить у любителей регулярок https://t.me/regex_ru

Тимур- Автор вопроса

спасибо

( ?|[/$\s])(word1|word2)\1((word1|word2)\1){0,}

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта