2013-07-31 3 views
2

Мне нужно захватить текст, который окружен в пределах quotes, присвоенный переменной string. Это, как содержание будетТекст Извлечь из большого содержимого

Inspired и вспоминая трюки, которые он узнал от Дока и его друзей, McQueen быстро появляется, чтобы вести гонку в последние круги. Хикс, , отказываясь потерять, отправляет Weathers в опасную аварию. Увидев , и, вспоминая судьбу Дока, МакКуин останавливается чуть ниже финиша , позволяя Хиксу побеждать, и возвращается назад, чтобы натолкнуть Weathers на финишную линию . Толпа и СМИ осуждают победу Хикса string="Mickey" и дают высокую оценку спортивному мастерству Маккуина. Хотя предложил спонсорскую сделку Dinoco, McQueen отказался, настаивая на том, что остался у своих нынешних спонсоров в качестве оценки их прошлой поддержки .

Мне нужно захватить Mickey из этого содержания.

Я пробовал substr на PHP, но не помог. Есть идеи ?

P.S. Строка внутри кавычек может отличаться.

+0

Почему не работал субстрат? Покажите свой код. Вы также должны иметь возможность делать это с регулярным выражением. – Barmar

+0

@ Barmar, так как я не знаю длины, где нужно отрезать строку. –

+0

Используйте 'strpos()', чтобы найти вторую двойную кавычку и отрезать там. – Barmar

ответ

2

Если у вас есть только один из этих процитированных слов в строке проще всего сделать будет:

$myArr = explode('"',$string); // break the string to array with " as dilimeter 
echo $myArr[1]; // echo the second element. 

Update: для многих цитат - выбрать только один за string=:

$myPos = strpos($string,'string="')+8; // get the position of string after 'string="' 
$result = substr($string,$myPos,strpos($string,'"',$myPos)-$myPos); 

echo $result; 

Примечание: это должно быть намного более эффективным, чем использование регулярных выражений - phpFiddle результат:

Yotam: 0.014078ms, bkilinc: 0.048885ms

+0

извините, может быть много цитат тоже. но мне просто нужно получить то, что назначено переменной 'string' –

+0

@JohnsonEddy обновлено –

+0

Пожалуйста, воздержитесь от моего вопроса, чтобы я мог проголосовать за ваш ответ, поскольку мне нужно 15 rep для продвижения. –

3

Я думаю, что preg_match следует использовать как;

$matches = Array(); 
preg_match("/string\=\"(.*?)\"/", $content, $matches); 

в конце $ matches [1] должно содержать значение.

+0

Дал вам голосование. Спасибо –

+0

спасибо, что голосовали. – bkilinc

Смежные вопросы