Login
Sign Up For Free
English
中文 (繁體)
中文 (香港)
中文 (简体)
日本語
Filipino
Bahasa Indonesia
Bahasa Melayu
Pусский
Português (Brasil)
Magyar
Français
Español
Deutsch
Čeština
العربية
Català
Dansk
Ελληνικά
فارسی
Suomi
Gaeilge
Hindi
עברית
Hrvatski
Italiano
Norsk bokmål
Nederlands
한국어
Polski
Română
Slovenský
Svenska
Türkçe
українська
беларуская
ไทย
Standard view
Сплит
думает
15 years ago
как заставить регулярку находить любые слова (любой длины) кроме "print"
latest #36
tamakio
15 years ago
в s&r для FAR писал: (?<=\s)(?!print)\S+(?=\s)
tamakio
15 years ago
правда начало/конец строки не учитывается
tamakio
15 years ago
и не будут по идее находится слова начинающиеся на print
立即下載
Ryoko
15 years ago
Я бы разбила задачу на два этапа. Для начала удалила все слова print из строки, а потом бы уже находила все слова ;o)
Сплит
15 years ago
tamakio
: что-то не проканало.
Сплит
15 years ago
Ryoko
: на этапе нахождения подстроки print в заданном месте паттерна уже можно отваливаться.
Сплит
15 years ago
а это кстати мысль
Сплит
15 years ago
задача в том, чтобы редиректнуть
site.com/article.html
->
site.com/article/print.h...
и остановиться после этого.
Сплит
15 years ago
конкретная задача (с определенной длиной пути) решается просто, а вот в общем виде пока нихт.
Ryoko
15 years ago
s/print//gism не катит?
Ryoko
15 years ago
Не поняла задачу?
Ryoko
15 years ago
что значит редиректнуть?
Ryoko
15 years ago
Преобразовать адреса первого типа во второй?
Сплит
15 years ago
да. Задачка для HandyCache. При простейшем решении негодяй зацикливается:
site.com/print/print/pri...
и так далее
Ryoko
15 years ago
s/^(.+)\.html$/$1\/print.html/
Сплит
15 years ago
в принципе решается при помощи белого списка, но это кривизна.
Ryoko
15 years ago
Аааа... Понял...
Ryoko
15 years ago
Надо подумать. Но сейчас голова совсем не варит...
tamakio
15 years ago
мот тот язык специфический и у тя не работает
tamakio
15 years ago
там получается по крайм пробельные символы (с исключением их из результатов поиска. при необх. добавить остальные возможные разделители)
tamakio
15 years ago
а по центру не print + непробельный 1 символ или более
Ryoko
15 years ago
А если просто unless(/print\.html$/i) s/\/(.+?)\.html$/\/$1\/print.html/;
Ryoko
15 years ago
Я всегда предпочитаю такие задачи решать за несколько итераций, что бережет время и нервы. Не стоит хапать на регекспы...
Ryoko
15 years ago
=фапать
Ryoko
15 years ago
Но если уж на них фапать, то могу посоветовать: s/\/(?!print\.)([^\/]+?)\.html$/\/$1\/print.html/
Сплит
15 years ago
Демон, но я же мужчина! Как я могу НЕ фапать на регекспы?
Сплит
15 years ago
походу в HandyCache не очень регулярные регулярки. print.html не находит, зато находит его часть: rint.html
Сплит
15 years ago
продолжаю эксперименты уже дома
Сплит
15 years ago
спасибо демон, после переколбаса под хендикешевский формат всё сработало:
Сплит
15 years ago
правило: (\w+\.\w+/)(([^./]+/)*)(?!print\.)([^./]+)(\.html) и замена: $1$2$4/print$5
Сплит
15 years ago
site.com/theme/article.h...
->
site.com/theme/article/p...
;
Сплит
15 years ago
site.com/theme/article/p...
-> X
Сплит
15 years ago
зачем $5 - а затем, чтобы можно было сделать например так: (\.s?html?)
Сплит
говорит
15 years ago
tamakio
: в теории всё ясно, но вот на практике оказалось, что регулярки везде со своими граблями. Думаю, что и в Far формат немного свой.
Сплит
говорит
15 years ago
всем спасибо; кому пригодится плод - пользуйтесь на здоровье.
Сплит
говорит
15 years ago
надо только его немного ограничить, чтоб не поганил все сайты подряд =)
back to top
delete
reply
edit
cancel
cancel