powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / php: помогите составить регулярное выражение
10 сообщений из 10, страница 1 из 1
php: помогите составить регулярное выражение
    #37317737
romas81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.
Помогите пожалуйста.
Имеется ряд строк, которые перебираются в цикле:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
www.jove.com/index/details.stp?id=XXX
www.jove.com/details.stp?id=XXX
www.jove.com/details.php?id=XXX
www.jove.com/article/XXX
www.jove.com/article/XXX/this-is-article-title
www.jove.com/details/XXX+dfg
http://www.jove.com/Details.stp?sn=c&eid=133313&ID=XXX
http://www.jove.com/details.php?id=XXX++ for +details+in+video% 29 

Вместо XXX цифры, скажем 1234.
Как вытянуть эти цифры при помощи регулярного выражения ?
Попробовал что-то смастерить:
Код: plaintext
 eregi ('(details|article){1}(\S)*(\?id|\/|\&id){1}(\S)*(\d)+','www.jove.com/details.php?id=1234',$arr);

Не то :(

Спасибо.
...
Рейтинг: 0 / 0
php: помогите составить регулярное выражение
    #37317896
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
romas81,

/(?:[?&]id=|\/)(\d+)/i
...
Рейтинг: 0 / 0
php: помогите составить регулярное выражение
    #37317935
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рекомендуется использовать preg, вместо ereg - более общепринятый синтаксис регулярок, на 99% идентичный для php, perl, js, c# и других.

Если точно известно, что нужный тебе id бывает в двух видах:

а) ....id=1234....

б) ...../1234(конец или не буква).....


тогда

Код: plaintext
/ [color=purple]\/\d+(\W|$)[/color] | [color=blue]\Wid=\d+[/color] /i
...
Рейтинг: 0 / 0
php: помогите составить регулярное выражение
    #37317939
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тьху ))

/ \/\d+(\W|$) | \Wid=\d+ /i
...
Рейтинг: 0 / 0
php: помогите составить регулярное выражение
    #37318151
romas81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо.
Еще вот такое подошло:
Код: plaintext
/.*(?:details|article)(?:\S)*(?:\?id\=|\/|\&id\=)(\d+).*/i
...
Рейтинг: 0 / 0
php: помогите составить регулярное выражение
    #37318198
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
romas81,

>ereg
>Не то :(

Конечно, не то. Этой функции уже нет начиная с версии 5.3.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
php: помогите составить регулярное выражение
    #38016050
Фотография Мих
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просьба помочь

есть массив строк, например
Код: php
1.
$arr_str = array('11_DC_.inf', '11_DC.inf', '11_ru.inf', '22_en.inf');



как с помощью регулярки сделать так чтобы вытянуть те строки которые не содержат _DC
чтобы осталось только строки
11_ru.inf
22_en.inf

делал так
Код: php
1.
2.
3.
foreach($arr_str as $str){
  if (preg_match("/[^_DC]{3}/",$str) echo $str;
}


вывелись все
...
Рейтинг: 0 / 0
php: помогите составить регулярное выражение
    #38016072
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мих,

Налицо нечитание мануала по регулярным выражениям. Запись "[^_DC]" означает буквально "любой один символ, кроме '_', 'D' и 'C'". Для данной задачи регекспы не нужны, достаточно strpos
...
Рейтинг: 0 / 0
php: помогите составить регулярное выражение
    #38016085
Фотография Мих
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle,

я примером привел, я знаю что достаточно strpos или сделать
Код: php
1.
2.
3.
foreach($arr_str as $str){
  if (!preg_match("/_DC/",$str) echo $str;
}


но задача с шаблоном будет расширятся, и столкнулся с вопросом а как же убрать лишние, не содержащие какой то набор
...
Рейтинг: 0 / 0
php: помогите составить регулярное выражение
    #38016248
Фотография Мих
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Михкак с помощью регулярки сделать так чтобы вытянуть те строки которые не содержат _DC
отвечаю

Код: php
1.
2.
3.
4.
5.
$arr_str = array('11_DC_.inf', '11_DC.inf', '11_ru.inf', '22_en.inf');

foreach($arr_str as $str){
  if (preg_match("/_[^D][^C](\.|_)/",$str) echo $str;
}
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / php: помогите составить регулярное выражение
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]