Программирование > Регулярные выражения

Все, кроме выражения

(1/3) > >>

Vladn:
Как сказать регулярному выражению фразу "Любая последовательность символов, в которой нет указанной последовательности"? Я знаю как сказать "Любая последовательность символов, в которой нет указанных символов" с помощью [^abcd].
Пример.
Пусть есть строчка
111111111111111111111111111111111111
нужно получить
111111222222222111111111111111111111

если сказать while ($a=~s/(.*?)1(.*?)/$1$d$2/) {}; (где $d=2) то получим следующее:
111111222222222222222222222111111111

если сказать while ($a=~s/([^()]*?)(1)/$1$d/) {}; то получим слдующее:
111111222211111111111111111111111111

Horez:
может, стоит таки разбить задачу на две? или с помощью оператора выбора

metton:
2Vladn
Формулируй вопрос точнее. [^abcd] вовсе не Любая последовательность символов, в которой нет указанных символов", а ЛЮБОЙ (КРОМЕ УКАЗАННЫХ) ОДИН СИМВОЛ. И так как ты это так определил, тем более не ясно что ты хочешь сказать этим: "Любая последовательность символов, в которой нет указанной последовательности". Эта формулировка скорее соответствует:
if(-1 == index($YourStr, $StringThatMustNotBeInYourStr)) {
# $YourStr соответствует критерию "Любая последовательность
# символов, в которой нет указанной последовательности"
}

Vladn:
metton
Читай внимательнее:
--- Цитировать ---Я знаю как сказать "Любая последовательность символов, в которой нет указанных символов" с помощью [^abcd].
--- Конец цитаты ---


И мне нужно не просто определить, есть ли указанная подпоследовательность в данной строке, а заменить текст между открывающим и закрывающим тегами, причем в этом тексте не должно быть другого закрывающего тега.

Я решил эту задачу, но решил некрасиво. Хотелось бы элегантного решения в одну строчку.

metton:

--- Цитировать ---И мне нужно не просто определить, есть ли указанная подпоследовательность в данной строке ...
--- Конец цитаты ---

Так ты определись, тебе нужно: "Любая последовательность символов, в которой нет указанных символов" или то, что я процитировал

И ещё, объясни мне логику вот этой фразы в общем: "И мне нужно не просто определить, есть ли указанная подпоследовательность в данной строке, а заменить текст между открывающим и закрывающим тегами". В первом предложении фигурирует строка и последовательность, которую нужно (или не нужно?! я уже запутался) найти в первой, а во втором предложении - некие тэги.
Я так подозреваю, при написании сообщения ты руководствовался правилом "2 пишем, 1 в уме" :rollingeyes:

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии