несовпадение, но вывод в результ... preg_match_all

  • Автор темы Автор темы RadLine
  • Дата начала Дата начала

RadLine

Новичок
несовпадение, но вывод в результ... preg_match_all

PHP:
$x='private [duster]private [лена]private [фывdfa]private [vana]';
preg_match_all("/private \[([a-zA-Z0-9_\s]{3,15}|[а-яА-Я0-9_\s]{3,15})\]*/", $x, $z);
foreach($z[1] as $tmp){echo $tmp;echo'<br>';}

/*
Результат выполнения:
duster
лена
[COLOR=red]фыв[/COLOR] 
vana
*/

что я упустил?
p.s. строчка выделенная красным не должна выводиться в результат массива, т.к. не подходит по условию(её полный вид 'фывdfa')
 
Re: несовпадение, но вывод в результ... preg_match_all

совпадение-то есть... и функция отрабатывает правильно, косяк в регулярке
а ты посмотри что в $z[0] , там видно откуда ноги растут...
 
:/ &%..

сформулирую получше вопрос: почему регулярка в [3] случ. опускает "\]" и возвращает совпадение?
 
Автор оригинала: RadLine
:/ &%..

сформулирую получше вопрос: почему регулярка в [3] случ. опускает "\]" и возвращает совпадение?
а какую роль у тебя в регулярке играет "*"?
 
Мегазнак, насколько я понял, для того, чтобы искать либо русские, либо английские слова. Типа смешанные не нужны. А вот про * правильный вопрос был, насколько я вижу.
 
надо не слова только из русских букв требовать, а только из русских, после которых нету английских без разделителя
 
Сверху