Форум программистов, компьютерный форум, киберфорум
PHP: RegExp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
voron095

Сложное (для меня( ) регулярное выражение

20.11.2010, 22:07. Показов 938. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
нужно обрабатывать выражения вида

(вариант 1)


cat281
cat281/


или
(вариант 2)

cat281/item6134.html


как с помощью регулярных выражений взять из первого варианта число?

как с помощью регулярных выражений выделить из второго варианта первое и второе число?

я пробовал написать вот такой скрипт

PHP
1
2
3
4
$temp=explode('/item',$_GET['query']);
$type=$temp[0];
if (!empty($temp[1])) $n=str_replace('.html','',$temp[1]);
else $n=0;

он работает с адресами вида

cat281
cat281/item6134.html

а когда пишу
cat281/

то не работает.

в общем, помогите пожалуйста, как сделать, чтобы
cat281
cat281/

считал одним и тем же

в программировании я не очень, мед образование, помогаю девушке с курсовым проектом...

Добавлено через 4 минуты
идея возникла!!! как их всей этой строки

cat218/item322.html

извлечь первое и второе число???

но так, чтобы

cat218/
cat218

считались одним и тем же запросом
а второе число считалось нулём.
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.11.2010, 22:07
Ответы с готовыми решениями:

Не простое, для меня, регулярное выражение
Есть список, с которого нужно спарсить текст, который выделенный красным. Например: ...

Регулярное выражение для урл
Здравствуйте, уважаемые специалисты. Есть переменная $url_forum, она может принимать примерно...

Регулярное выражение для замены
Привет всем! Нужно регулярное выражение.. Оно должно проверять переменную $source на незакрытый...

2
Автор FAQ
 Аватар для insideone
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
21.11.2010, 00:09
О да, регулярки это магия )
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$regex = '#cat(\d+)(/item(\d+))*#';
    
$q = 'cat218/item322.html';
preg_match($regex, $q, $matches);
list(,$cat,, $item) = $matches;
$item = (int)$item;
echo "CAT: $cat, ITEM: $item <br />";
 
$q = 'cat218/';
preg_match($regex, $q, $matches);
list(,$cat,, $item) = $matches;
$item = (int)$item;
echo "CAT: $cat, ITEM: $item  <br />";
CAT: 218, ITEM: 322
CAT: 218, ITEM: 0
Впрочем можно написать регулярку и получше...
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
21.11.2010, 05:55
PHP
1
2
3
4
5
6
$re = '~^cat(\\d+)(?:/(?:item(\\d+)\\.html)?)?$~i';
if (preg_match($re, $string, $m)) {
    echo 'cat:', $m[1];
    if (isset($m[2])) echo ', item:', $m[2];
}
else echo 'not match';
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.11.2010, 05:55
Помогаю со студенческими работами здесь

Регулярное выражение для email
Почему, после обработки, емайлы не становятся ссылками? &lt;?php $text = &quot;Привет от...

Регулярное выражение для ссылки
Здравствуйте. Со страницы нужно достать все url-ы для этого использую preg_match_all() . Но с...

Регулярное выражение для домена
определенный текст разбивается на предложения после точки но так же там может встретиться название...

Регулярное выражение для строки
Здравствуйте. Есть строка /login?nick=sanych&amp;refer=http://site.com/ и еще одна...

Регулярное выражение для ЧПУ
Здравствуйте я делаю себе блог и хочу себе урл вида mysite.ru/category/post, как мне его разбить на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru