Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Программинг, Скрипты, Софт, Сервисы
»
Тема:
Помогите с регэкспом
Новая тема
Ответить
цитата
29/09/07 в 21:21
Kn
Не понимаю в чем пробелема, уже час бьюсь
$desc="slovo [vor~var] slovo [ver] slovo ";
$desc=~s/(\[[A-z, ,~]+\])//;
идея такая что должно замениться только то что в первых скобках
а у меня почему то заменятся все что между первой скобкой и последней
с фигурными скобками работает
$desc="slovo {vor~var} slovo {ver} slovo ";
$desc=~s/(\{[A-z, ,~]+\})//;
цитата
29/09/07 в 21:39
lalex
Использую нежадный плюс (Ungreedy Matching)
цитата
29/09/07 в 21:45
sotiris
уже ответили, блин, пока логинился, опередили
на счет 2й: похоже скобка ] попадает в диапазон A-z, иначе как объяснить такое:
$desc1="aaa}bbb";
$desc2="aaa]bbb";
$desc1=~s/([A-z]+)//;
$desc2=~s/([A-z]+)//;
print "desc1=$desc1\n";
print "desc2=$desc2\n";
выводит:
desc1=}bbb
desc2=
хотя может туплю, поправьте если не прав
цитата
29/09/07 в 21:45
Kn
Спасибо админам Амхоста ))
все решилось
оказалось дело в [A-z] в этот диапозон входят []
цитата
29/09/07 в 21:47
sotiris
гы, ну как я и говорил
цитата
29/09/07 в 21:49
lalex
Поддерживаю. Правильный вариант: [a-zA-Z]. И плюс можно оставить как был.
цитата
29/09/07 в 22:00
Kn
а тогда в догонку
принципиальная разница есть между [A-Z],[a-z] i [a-zA-Z]
цитата
29/09/07 в 22:10
lalex
Разница в том, что [A-Z] матчит заглавные буквы, а [a-z] - прописные. [A-Za-z] - и те, и другие. Если использовать флаг /i при матче, что все три класса буков будут одинаковыми, т.е. различия между ними не будет.
У тебя проблема была в том, чтом в ASCII таблице символов между буквами Z и a находится 6 лишних сиволов, в том числе квадратные скобки.
цитата
29/09/07 в 22:23
Kn
это я все понял)
теперь понял что и разницы нету
Новая тема
Ответить
Эта страница в полной версии