|
|
|
| нужно, чтобы сочетание больше трех тире подряд менялось на пустую строку "[---]*" -> ""
нужны обратные слеши перед тире?
$str = ereg("^[\-\-\-]*","",$str);
|
почему-то, если я ставлю [\-] или [\-\-], мне выдает 1 (а я хочу совсем пустую строку),
а если пишу [\-\-\-], то ругается Warning: REG_ERANGE:invalid character range in
если ставлю + вместо * , то выдает пустую строку при одном или двух тире, а при трех опять ругается так же. | |
|
|
|
|
|
|
|
для: elenaki
(21.10.2004 в 16:47)
| | А нет, символ "-" как раз не нужно экранировать, следует экранировать квадратные скобки:
<?php
$str = "[---] Это текст [---]";
echo $str."<br>";
$str = preg_replace("|\[---\]|","",$str);
echo $str;
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(21.10.2004 в 20:43)
| | спасибо. только квадратные скобки не нужны. квадратные скобки - это я поставила, т.к. хотела изобразить шаблон. когда повторяемое сочетание, надо ведь шаблоны в эреги подставлять. или вот это - |? у меня в книжке написано, что дефис надо экранировать, а шаблоны заключаются в квадратные скобки... | |
|
|
|
|
|
|
|
для: elenaki
(21.10.2004 в 21:59)
| | >когда повторяемое сочетание, надо ведь шаблоны в эреги
>подставлять. или вот это - |? у меня в книжке написано, что
>дефис надо экранировать, а шаблоны заключаются в квадратные
>скобки...
Если заранее известно сколько символов - проще и быстрее их указать явно, т.е. если нужно найти три дефиса (---), то их и следует указывать, если их число не известно, можно воспользоваться шаблоном "[-]+" (один или большее число дефисов), только следует помнить, что квадратные скобки всегда обозначают один символ из представленных внутри. Экранировать следует всё, что входит в состав управляющих квантификаторов: [ ] + * и т.п.
PS Вообще существует несколько диалектов регулярных выражений, что самое паршивое они во многом похожи друг на друга и различаются в деталях. Даже в PHP существует два набора функций Perl-регулярные выражения (самый распрастранённый диалект: см. ссылку) и стандартные регулярные выражения (расширеные выражения POSIX).
http://www.softtime.ru/dic/id_dic=134&id_group=3 | |
|
|
|
|
|
|
|
для: cheops
(21.10.2004 в 22:11)
| | К регулярным выражениям следует подходить как ко вспомогательному, но независимому языку программирования (вроде SQL), чтобы их освоить стоит продраться хотя бы через половину книги "Регулярные выражения" Дж. Фридл - это по-моему сейчас единственное современное издание, наиболее полно описывающее регулярные выражения - в РФ его издаёт Питер - на обложке симпатишные совы. Книга стоящая и охватывает практически все диалекты, если часто приходится работать с регулярными выражениями её следует доставать всеми доступными способами.
PS Правда для новичков книга является лучшим способом отбить всё желание заниматься программированием :) - читать её тяжелова то, кроме того автор не стесняет себя языками программирования - перебрал по моему все языки, где встречаются регулярные выражения (сразу скажу PHP практически отсутствует, что в общем не мешает освоению материала). | |
|
|
|
|
|
|
|
для: cheops
(21.10.2004 в 22:27)
| | Жаль, что пока что ее нигде нельзя просто скачать... | |
|
|
|