регулярные выражения php

dspu
На сайте с 10.05.2006
Offline
268
388

Как вырезать из xml файла вхождения mbid="6.30" где 6.30 - любое число с точкой

$content=preg_replace('/ mbid="(.*)" /Ui'," ",$content);
почему то не работает
siv1987
На сайте с 02.04.2009
Offline
427
#1

Проверьте если действительно перед и после mbid="6.30" есть пробелы

LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#2

$content=preg_replace('@mbid=".*?"@'," ",$content);

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
dspu
На сайте с 10.05.2006
Offline
268
#3
LEOnidUKG:
$content=preg_replace('@mbid=".*?"@'," ",$content);

Так работает.

Насколько я понимаю, (.*) кушает до последней кавычки " в $content, а не до первой встречной, так?

siv1987
На сайте с 02.04.2009
Offline
427
#4
dspu:
Насколько я понимаю, (.*) кушает до последней кавычки " в $content, а не до первой встречной, так?

У вас стоит модификатор U который инвертирует жадность. Скорее всего дело в пробелах.

vadoru
На сайте с 06.01.2009
Offline
38
#5

$content=preg_replace('#mbid="[^"]+"#'," ",$content);

Учебный центр design-class.com.ua (http://design-class.com.ua)
dspu
На сайте с 10.05.2006
Offline
268
#6

А почему в preg_match я не могу это значение поймать?

$text='gsdfgds"fgdsfg mbid="6.30" dfgdsfgd"sfg';


preg_match('@mbid=".*?"@Ui',$text,$info);

print $info[1];
siv1987
На сайте с 02.04.2009
Offline
427
#7

dspu, если используете модификатор U значит знак вопроса использовать для жадности не нужно. И наоборот.

print_r($info);

и вас отсутствует группировка.

dspu
На сайте с 10.05.2006
Offline
268
#8

почему он мне mbid="6.30" а не 6.30 выдает????😮

<?php

$text='gsdfgds"fgdsfg mbid="6.30" dfgdsfgd"sfg';

preg_match('@mbid=".*?"@Ui',$text,$info);

print($info[0]);

?>
siv1987
На сайте с 02.04.2009
Offline
427
#9

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий