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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите составить выражение

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Максим21
Отправлено: 12 Октября, 2010 - 20:11:29
Post Id



Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




Помогите выражение написать, не делает вхождения dd. По разному пробовал.
Нужно найти dd

$b="Nokia dd";

$reg='/^(?<=Nokia)\s\cx/';

preg_match($reg, $b,$res);

echo $res[0];
 
 Top
Uchkuma
Отправлено: 12 Октября, 2010 - 20:23:35
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




Почему "\cx"?

Да, и echo $res[1]; соответственно.
 
 Top
Максим21
Отправлено: 12 Октября, 2010 - 20:34:26
Post Id



Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




Uchkuma пишет:
Почему "\cx"?

Да, и echo $res[1]; соответственно.



Пишут что значит любой символ-\cx.
А ретроспективной проверкой можно тоже?
А мне нужно только dd.

(Отредактировано автором: 12 Октября, 2010 - 20:37:12)

 
 Top
movEAX
Отправлено: 12 Октября, 2010 - 20:51:50
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009  


Помог: 16 раз(а)




Uchkuma пишет:
$reg='/^Nokia\s(.+)/';
Максим21 пишет:
$reg='/^(?<=Nokia)\s\cx/';

Если заранее известно, что будет один пробел, то зачем использовать \s ??
Я понимаю, если бы был установлен модификатор x (PCRE_EXTENDED), но тут его нет.


-----
армия.. самое убогое место
 
 Top
Максим21
Отправлено: 12 Октября, 2010 - 20:59:02
Post Id



Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




Uchkuma пишет:
Почему "\cx"?

Да, и echo $res[1]; соответственно.


Все работает, голова не работает уже)
Спасибо
(Добавление)
movEAX пишет:
Uchkuma пишет:
$reg='/^Nokia\s(.+)/';
Максим21 пишет:
$reg='/^(?<=Nokia)\s\cx/';

Если заранее известно, что будет один пробел, то зачем использовать \s ??
Я понимаю, если бы был установлен модификатор x (PCRE_EXTENDED), но тут его нет.


Я только 7 часов как знаком с регулярными выражениями
А как можно написать без побела?
 
 Top
Инклуд
Отправлено: 12 Октября, 2010 - 21:12:37
Post Id



Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Окт. 2010  
Откуда: Россия


Помог: 0 раз(а)




Вопрос несколько странен.
Если Вам нужно именно dd, то, скажем:

А если вам нужно то, что будет идти после 'Nokia 'в буквенном эквиваленте, то:

Если же не только буквы,но и цифры, то можно попробовать так:
PHP:
скопировать код в буфер обмена
  1. $res = '/^Nokia ([a-zA-Z\d]*)$/';
 
 Top
movEAX
Отправлено: 12 Октября, 2010 - 21:13:11
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009  


Помог: 16 раз(а)




Я к тому, что, какой смысл использовать метасимвол там, где он особо то и не нужен?
Т.е. можно было просто обойтись пробелом. А пробел он и в Африке пробел 0x20.
Инклуд пишет:
Если Вам нужно именно dd, то, скажем:

Скорее всего имелось в виду \d\d, или я не прав?


-----
армия.. самое убогое место
 
 Top
Инклуд
Отправлено: 12 Октября, 2010 - 21:13:55
Post Id



Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Окт. 2010  
Откуда: Россия


Помог: 0 раз(а)




Без \s - имеется ввиду указать конкретно один пробел - ' '.
Поучиться регулярным выражения можно здесь (в режиме реального времени): http://gskinner[dot]com/RegExr/
 
 Top
Максим21
Отправлено: 12 Октября, 2010 - 21:49:36
Post Id



Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




movEAX пишет:
Я к тому, что, какой смысл использовать метасимвол там, где он особо то и не нужен?
Т.е. можно было просто обойтись пробелом. А пробел он и в Африке пробел 0x20.
Инклуд пишет:
Если Вам нужно именно dd, то, скажем:

Скорее всего имелось в виду \d\d, или я не прав?


Нет просто dd. спасибо
 
 Top
Uchkuma
Отправлено: 12 Октября, 2010 - 21:51:43
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




Максим21 пишет:
Нет просто dd. спасибо
Он таки имел ввиду то, что идет после Nokia через пробел Улыбка
(Добавление)
Максим21, да, замените в шаблоне \s на обычный пробел.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB