извлечь конкретную строку с PHP - PullRequest
0 голосов
/ 05 октября 2011

Допустим, у нас есть 4 строки:

  1. string1 = "Hello my name is 'George' and im fine";
  2. string2 = "Hello my name is 'Mary' and im fine";
  3. string3 = "Hello my name is 'Peter' and im fime";
  4. string4 = "Hello my name is 'Kate' and im fine";

Как мы можем извлечь только те части строк, которые содержат имя в ''?

Заранее спасибо!

Ответы [ 4 ]

2 голосов
/ 05 октября 2011

вам, вероятно, следует использовать регулярные выражения:

preg_match("/'(.+?)'/", $string, $matches);
print_r($matches);

Подробнее о http://php.net/preg_match и http://lt.php.net/preg_match_all

1 голос
/ 05 октября 2011
$pieces = explode("'", $string);
echo $pieces[1];
0 голосов
/ 11 апреля 2016
$string1 = "Hello my name is 'George' and im fine";
preg_match_all("/\'(.*)\'/",$string1,$matches,PREG_SET_ORDER);
echo $matches[0][1];

Выше будет соответствовать строка любой длины между одинарными кавычками. Если вы хотите сопоставить отдельное слово с одинарными кавычками, вместо \. + Также подойдет '\ w +'.

0 голосов
/ 05 октября 2011

Вы можете использовать функцию разнесения, чтобы разбить строку на массив, основанный на разделителе, в вашем конкретном случае апостроф будет работать, чтобы разделить строку так, чтобы следующий код вывел ваш ответ:

$tokens= explode("'", "Hello my name is 'Kate' and im fine");
//The value you require is now found in $tokens[1];
echo $tockens[1];

В качестве альтернативы вы можете использовать preg_match для хранения совпадений регулярного выражения с определенными группами в регулярном выражении:

$pattern = "Hello my name is '(.*)' and im fine";
preg_match ($pattern ,  "Hello my name is 'Kate' and im fine", $matches)
//The value you require is now found in $matches[1];
echo $matches[1];
...