Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Выражение
Форумы портала PHP.SU » PHP » Регулярные выражения » Выражение

Страниц (1): [1]
 

1. Jeff - 21 Сентября, 2013 - 18:59:31 - перейти к сообщению
Ребят, в общем то сейчас тренеруюсь с рег. выражениями, не очень и срочный вопрос у меня, но не могу найти на него решение.
Как мне с помощью одного выражения извлечь символы в разных местах текста.

Для примера такая строка:

CODE (htmlphp):
скопировать код в буфер обмена
  1. <user id='21312' name='krutoi' pass='abc123' datareg='21/12/12' value5='dsad2123'>
[code=htmlphp][/code]

Как извлечь одним выражением id, pass и value5 (тобиш 21312, abc123, dsad2123)?

Кодом написанным мною ничего не выходит:

PHP:
скопировать код в буфер обмена
  1. $data = "<user id='21312' name='krutoi' pass='abc123' datareg='21/12/12' value5='dsad2123'>";
  2.  
  3. preg_match_all('/id=\'(\w+)\' pass=\'(\w+)\' value5=\'(\w+)\'/Usi', $data, $result, PREG_SET_ORDER);
  4.  
  5. print_r($result);
2. Саныч - 21 Сентября, 2013 - 19:15:07 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $str = "<user id='21312' name='krutoi' pass='abc123' datareg='21/12/12' value5='dsad2123'>";
  2. preg_match_all('#<user\s+id=\'([^\']+)\'.+pass=\'([^\']+)\'.+value5=\'([^\']+)\'.*>#i', $str, $matches);
  3. print_r($matches);
Но это если параметры идут именно в этом порядке, если нет - то нужно по другому делать.

 

Powered by ExBB FM 1.0 RC1