Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Выборка данных
 
 автор: Berencev   (03.03.2013 в 10:56)   письмо автору
 
 

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

<?php
$text 
'Какой-то текст...Какой-то текст... [url=хттп://адрессайта/article/55/view/]ссылка[/url] Какой-то текст...Какой-то текст...';

Как с помощью регулярки получить число 55?

   
 
 автор: Slo_Nik   (03.03.2013 в 11:51)   письмо автору
 
   для: Berencev   (03.03.2013 в 10:56)
 

Во-первых, Вы ошиблись веткой форуму
Во-вторых,

<?php
$text 
'Какой-то текст...Какой-то текст... [url=хттп://адрессайта/article/55/view/]ссылка[/url] Какой-то текст...Какой-то текст...';
$pattern "#(\d+)#";
preg_match($pattern$text$out);
echo 
"<pre>";
 
print_r($out);
echo 
"</pre>";
?>

   
 
 автор: Berencev   (03.03.2013 в 11:56)   письмо автору
 
   для: Slo_Nik   (03.03.2013 в 11:51)
 

1: Знаю что ошибся, случайно не тот форум выбрал.
2: А ваш вариант не будет ли выбирать все числа из текста?

   
 
 автор: Slo_Nik   (03.03.2013 в 11:58)   письмо автору
 
   для: Berencev   (03.03.2013 в 11:56)
 

так Вы показывайте, где именно ещё есть числа?
Можно попробовать так

<?php
$pattern 
"#\/(\d{2})\/#";
?>

будет выбирать именно две цифры между двумя слешами

   
 
 автор: Berencev   (03.03.2013 в 12:02)   письмо автору
 
   для: Slo_Nik   (03.03.2013 в 11:58)
 

мне нужно число именно из этого текста
[url=хттп://адрессайта/article/55/view/]ссылка[/url]

число может быть очень большое, а не только из 2-ух символов

   
 
 автор: Slo_Nik   (03.03.2013 в 12:10)   письмо автору
 
   для: Berencev   (03.03.2013 в 12:02)
 

так надо сразу писать, подробно, а не растягивать на тысячу сообщений!!!

<?php
$pattern 
"#\/(\d+)\/#";
?>

   
 
 автор: Berencev   (03.03.2013 в 12:12)   письмо автору
 
   для: Slo_Nik   (03.03.2013 в 12:10)
 

как будто не понятно было что мне надо.
ваш вариант не подходит, но спасибо и на этом.

   
 
 автор: Slo_Nik   (03.03.2013 в 12:15)   письмо автору
 
   для: Berencev   (03.03.2013 в 12:12)
 

Нет, не понятно!!!
Гадалки все в отпуске!
Если хотите получать нормальные ответы, то описывайте нормально свою проблему

   
 
 автор: Berencev   (03.03.2013 в 12:17)   письмо автору
 
   для: Slo_Nik   (03.03.2013 в 12:15)
 

Странный вы человек. Уже какое сообщение пытаюсь объяснить, что мне надо, а в ответ что нужно объяснять.

Неужели этот текст вам ничего не говорит?

[url=хттп://адрессайта/article/55/view/]ссылка[/url]


Я тут показываю, что нужно делать выборку именно из "[url=хттп://адрессайта/article/55/view/]ссылка[/url]", а не из "/55/"

   
 
 автор: Berencev   (03.03.2013 в 13:08)   письмо автору
 
   для: Berencev   (03.03.2013 в 10:56)
 

подождем адекватных и понимающих людей...

   
 
 автор: Slo_Nik   (03.03.2013 в 17:38)   письмо автору
 
   для: Berencev   (03.03.2013 в 13:08)
 

чтобы не ждать адекватных, надо адекватно вопрос задавать
это первое
второе, почему это Вы решили, что выражение не подходит?
возьмите последний вариант $pattern , подставьте в свою строку ещё несколько цифр в разных местах и проверьте
а вот когда проверите, вот тогда будете учиться адекватно задавать вопросы


<?php
// при такой строке
$text 'Как11ой-то тек 77 ст...Как22й-то текст... 33[url=хттп://адрессайта/article/55/view/]ссылка[/url] Како44й-то текст...Как55ой-то текст...';
// и при последнем варианте $pattern
$pattern "#\/(\d+)\/#";
// вернёт только 55
Array
(
    [
0] => Array
        (
            [
0] => /55/
        )

    [
1] => Array
        (
            [
0] => 55
        
)

)

что ещё надо?

   
 
 автор: Berencev   (04.03.2013 в 00:02)   письмо автору
 
   для: Slo_Nik   (03.03.2013 в 17:38)
 

Всегда ведь знал "хочешь сделать хорошо, делай сам", вот и сейчас помогло свое решение.
Ваш вариант не сработает тут.

<?php
$text 
'Как11ой-то тек 77 ст...Как22й-то текст... 33[url=хттп://адрессайта/article/55/view/]ссылка[/url] Како44й-то текст...Как55ой-то текст...[url=хттп://адрессайта/text/12/]ссылка12[/url] Как22й-то текст... [url=хттп://адрессайта/blabla/777/blabla/]ссылка777[/url]...';

незнаю почему, но мне показалось вы сами новичек в регулярках...
P.S. вопрос закрыт

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования