Forum Webscript.Ru
Программирование => Регулярные выражения => Тема начата: Vladn от 01 Октября 2003, 16:04:21
-
Подскажите, как записать регулярным выражением следующую фразу:
удалить в текущем документе все буквы A, которые не находятся внутри комментериев
Только не спрашивайте, зачем мне это надо.
-
s/()|A/$1/g;
Только "use warnings" этого не оценит...
[OFF]Я замучился править пост. Никак не удается избавится от пробела в строке! Там его быть не должно.[/OFF]
-
2ondr
Эээ... А зачем эскейпить тире? Оно же не в классе символов. Ещё по хорошему стоило бы добавить модификатор s.
-
ondr
Хмм.. а оно разве не скушает | aaa --> bbb <--- aaa | ?
-
metton:
Эээ... А зачем эскейпить тире? Оно же не в классе символов.
Еще как в классе! (метасимволов)
perldoc perlre
metton:
Ещё по хорошему стоило бы добавить модификатор s.
Можно.
Oak:
Хмм.. а оно разве не скушает | aaa --> bbb <--- aaa | ?
А что? Должно?
-
ondr
Таки я не прав.
-
2ondr
Ты не прав! Тире не является метасимволом вне квадратных скобок.
-
Насчет дефиса:
Дефис выполняет функции метасимвола только внутри символьного класа — в остальных случаях он совпадает с обычным дефисом. Более того, даже в символьных классах дефис не всегда интерпретируется как метасимвол. Если дефис является первым символом, указанным в классе, он заведомо не может определять интервал и поэтому интерпретируется как литерал. Аналогично, вопросительный знак и точка в конце класса считаются метасимволами в контексте обычных регулярных выражений, но не в контексте класса.
-
2Yukko
Просветил, дружище ;)
Я об этом и говорил ondr-у.