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 » » Вопросы новичков » Регулярка, как правильно сделать?

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

1. android - 30 Июля, 2013 - 17:01:33 - перейти к сообщению
Добрый день.

Есть теги [fuck=test|1] и [fuck=test2]

Как вы поняли значение 1 может быть, а может и нет... Как сделать правильно регулярку для этого?

Мои наработки: !\\[fuck=([a-z_]+)(?:\|([0-9]+))\\]!is

И если можно, мануал по регуляркам приложите...
2. EuGen - 30 Июля, 2013 - 17:03:59 - перейти к сообщению
CODE (htmlphp):
скопировать код в буфер обмена
  1. /\[tag\=[a-z]+([0-9]*)\]/is

?
Руководство
3. android - 30 Июля, 2013 - 17:05:07 - перейти к сообщению
Должно быть с вертикальным слешем |
4. EuGen - 30 Июля, 2013 - 17:09:03 - перейти к сообщению
Нестрого (пропустит и найдёт все правильные, но и неправильные - наподобие [tag=test|] - тоже)
CODE (htmlphp):
скопировать код в буфер обмена
  1. /\[tag\=[a-z]+[\|]?([0-9]*)\]/is

?
5. android - 30 Июля, 2013 - 17:15:27 - перейти к сообщению
То что нужно, но не пойму почему не ([0-9]+) ???
Если там будет больше одной цифры?
6. esterio - 30 Июля, 2013 - 17:25:41 - перейти к сообщению
CODE (regex):
скопировать код в буфер обмена
  1. /^\[(\w+?)\=([^|\]]+)(?:\|(?<=\|)(\d+?))?\]$/s

?
7. EuGen - 30 Июля, 2013 - 17:35:58 - перейти к сообщению
android пишет:
Если там будет больше одной цифры?

Потому что Вы не указали в условии явно, что делать, если цифр нет вовсе (например, [tag=test])

 

Powered by ExBB FM 1.0 RC1