Цитата (Adamant @ 17.01.2009 - 17:10) |
'/^[abcd]+[rt]+$/U' - в начале строки идут буквы из набора abcd и в конце строки идут буквы из набора rt и все! Между ними вы указали, что не должно быть ничего!
|
то есть результат должен быть ar. Но его не показывает. Я не стал писать все перепробованные варианты. Но я пробовал и с карманами и print_r использовал. Результат один - пусто!
PHP |
$ra = 'adartwgsdhtr'; preg_match('/(^[abcd]+[rt]+$)/U', $ra, $arr); echo '<pre>'; print_r($arr); echo '</pre>'; |
пусто! Из того, что Вы объясняете, на выходе должно быть ar. Кусок текста, начинающийся на один из символов abcd и заканчивающийся на один из символов r или t.
PHP |
$ra='adartwgsdhtr'; preg_match('/^[bcd]+([^\s]*)[rt]+$/U', $ra, $arr); echo '<pre>'; print_r($arr); echo '</pre>'; |
Должно быть содержащееся МЕЖДУ символами. То есть a. Тоже пусто!
Цитата (Sylex @ 17.01.2009 - 17:18) |
потому что символ ^ указывает, что поиск должен идти С САМОГО НАЧАЛА строки, в данном случае не подходит под шаблон. |
Из написаного adamantом примера я понял, что этот символ для искомого куска, что кусок должен начинаться на [abcd] и заканчиваться на [rt].
Цитата (Sylex @ 17.01.2009 - 17:18) |
поставьте конкретную задачу, в вашем первом посте совершенно непонятно зачем вы ставите [abcd] |
мне нужен кусок текста котрый начинается на один из символов[abcd]
и заканчивается на один из символов [rt]
получается надо делать надо
PHP |
$ra='adartwgsdhtr'; preg_match('/([abcd]+[^\s]*[rt]+)/U', $ra, $arr); echo '<pre>'; print_r($arr); echo '</pre>'; |
Вот теперь все заработало как надо! Всем спасибо!