хочу выбрать только
/name_of_product_group/product?reff=menu_main
для этого я хочу искать в строке /f/ и, если такого совпадения нет, то пропускать такую строку дальше (или записывать в список - это не так важно)
регулярка .+[^/f/] ищет любой из символов '/', 'f', '/'
мне же хотелось бы именно /f/ целиком
группировка искомого сочетания в скобки и попытка исключить его .+^(/f/) тоже результатов не дали.
Сергей Ильин, ^ называется отрицание чего либо.
если хотите углублятся в регулярки, советую взять в руки книгу - Джеффри Фридл, мастер регулярных выражений
Сергей Ильин, .+ этой штукой вы проходите/проверяете всю строку, и если где нибудь есть нахождение /f/ то отрицаем именно эту строку
правильная у вас там была задумка, но нужно было все соединить и тогда уже отрицать (^.+[^/f/])
Сергей Ильин, получилось у вас реализовать, что хотели?
пример TAbrahamyan отрабатывает не так, как нужно. он по сути просто выбирает первую строку
Если убрать правильную строку в конец, то видно, что не работает https://regexr.com/5522u
LaXiTy, честно говоря, сделал через if. Но пример с регуляркой в данном случае поойдет, так как я собираю все urls циклом (и поэтому они в цикле являют собой каждый - одну-единственную строку)
TAbrahamyan, всё равно нет https://regexr.com/5522u
судя по всему оно не будет так работать, потому что всё что не попадаёт в исключение попадает в общий фильтр (.*)