Нахождение части текста от символа к символу - PullRequest
0 голосов
/ 08 января 2012

Например, у меня есть текст.

$text = 'Hello dear friend, my name is Jacky.
I am 25 years old and @I am earning* $500 per month, but @I am going* to earn more';

Я хочу найти все части текста, которые начинаются с символа "@" и заканчиваются символом "*". В этом примере я хочу иметь такие переменные:

$found[1] = 'I am earning';
$found[2] = 'I am going';

Кто может мне помочь с этим? Я использую strstr (), но он не работает, если найдено более одной детали.

Ответы [ 2 ]

3 голосов
/ 08 января 2012
preg_match_all('/@(.*?)\*/', $str, $matches);
$matches = $matches[1];

Или:

preg_match_all('/(?<=@).*?(?=\*)/', $text, $matches);
$matches = $matches[0];

Оба результата в $matches равняются:

Array
(
    [0] => I am earning
    [1] => I am going
)
1 голос
/ 08 января 2012

Использование preg_match_all().

$text = 'Hello dear friend, my name is Jacky. I am 25 years old and @I am earning* $500 per month, but @I am going* to earn more';
preg_match_all("/(?<=@).*?(?=\*)/", $text, $found);

Матчи будут сохранены в $found.

...