|
|
|
| Можно ли использовать скобки только для группирвки, чтобы подвыражение не участвовало в $matches. В приведенном примере, чтобы получить значение text2 не в $matches[4], а $matches[3] ?
Строка: #text1(text2)
(#)?([\w\-]+)(\(([\w\-]*)\))?
|
| |
|
|
|
|
|
|
|
для: durak
(09.06.2007 в 15:41)
| | Нужно использовать (?:незахватывающую) подмаску
(#)?([\w\-]+)(?:\(([\w\-]*)\))?
|
См. мануал http://softtime.ru/dic/id_dic=134&id_group=3 | |
|
|
|
|
|
|
|
для: durak
(09.06.2007 в 15:41)
| | блин, не обновил страницу ))
<?php
preg_match('|(#)?([\w\-]+)(\(([\w\-]*)\))?|','#text1(text2)',$arr);
print_r($arr);
preg_match('|(#)?([\w\-]+)(?:\(([\w\-]*)\))?|','#text1(text2)',$arr);
print_r($arr);
?>
|
((?:подвыражение)*) | |
|
|
|
|
|
|
|
для: Disable
(09.06.2007 в 16:10)
| | Спасибо, ребята. Я знал об этой возможности, но все никак не мог вспомнить синтаксис. Полазил по инету, не нашел. | |
|
|
|
|
|
|
|
для: durak
(09.06.2007 в 16:25)
| | я пока искал меня опередили с ответом :) | |
|
|
|