2016-10-11 1 views
-1

Например, моя строка: DELIMxxxyyyzzzaaabbbcc,DELIMaaabbcccxxxyyyzzz,DELIMzzzyyyxxxaaabbbccc,DELIMyyyaaabbb,PHP - получить строку между положением и следующим появлением символов

Вы можете увидеть эти данные организованы в разграниченных группах. Я хочу извлечь вторую группу (например), где мне предоставляется позиция (в данном случае 24) и следующий разделитель, который я знаю как «DELIM».

Какую комбинацию substr и strpos или другие использовали бы, чтобы получить это?

+1

Вы имеете в виду, что вы указываете какую-либо позицию в строке и получаете следующий разделитель в строке? – rbr94

+0

Да - правильно :) – Warren

+0

Название вашего вопроса, похоже, не соответствует содержимому. – jeroen

ответ

0

Используйте strpos, чтобы выбрать начальную и конечную позицию ваших разделителей группы. Затем вы можете использовать substr, чтобы получить делимированную группу, выбрав строку между этими двумя позициями.

$offset = 4; 

$start = strpos($mystring, 'DELIM', $offset); //select start point 

$end = strpos($mystring, 'DELIM', $start+5); //select end point by selecting next delimiter 

$substr = substr($mystring, $start, $end-$start); 
0

Вы можете использовать StrPos со смещением

$mystring = 'DELIMxxxyyyzzzaaabbbcc,DELIMaaabbcccxxxyyyzzz,DELIMzzzyyyxxxaaabbbccc,DELIMyyyaaabbb,' 
$pos = strpos($mystring, 'DELIM', 24+1 + strlen('DELIM')); 

$myPart = substr($mystring, 24, $pos); 
+1

Это будет извлекать только часть второй группы. Заголовок и содержание вопроса, похоже, противоречат :-) – jeroen

+0

У меня есть ответ ... в любом случае концепция остается прежней. Offset и legnth – scaisEdge

+0

Я на самом деле имел в виду, что вы не получите символов до позиции 24/xx, который может быть частью второй (в данном случае ...) группы. – jeroen

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