Получить строку между двумя строками

Моя строка: «reply-234-private», я хочу получить номер после «reply-» и до «-private», это «234». Я попытался с помощью следующего кода, но он возвращает пустой результат:

$string = 'reply-234-private'; $display = preg_replace('/reply-(.*?)-private/','',$string); echo $display; 

Related of "Получить строку между двумя строками"

Вы можете просто взорвать его:

 <?php $string = 'reply-234-private'; $display = explode('-', $string); var_dump($display); // prints array(3) { [0]=> string(5) "reply" [1]=> string(3) "234" [2]=> string(7) "private" } echo $display[1]; // prints 234 

Или используйте preg_match

 <?php $string = 'reply-234-private'; if (preg_match('/reply-(.*?)-private/', $string, $display) === 1) { echo $display[1]; } 

Посмотрите на функцию explode ()

что-то вроде этого:

 $myString = 'reply-234-private'; $myStringPartsArray = explode("-", $myString); $answer = $myStringPartsArray[1]; 

В этой статье показано, как получить все строки между двумя тегами или двумя строками.

http://okeschool.com/articles/312/string/how-to-get-of-everything-string-between-two-tag-or-two-strings

 <?php // Create the Function to get the string function GetStringBetween ($string, $start, $finish) { $string = " ".$string; $position = strpos($string, $start); if ($position == 0) return ""; $position += strlen($start); $length = strpos($string, $finish, $position) - $position; return substr($string, $position, $length); } ?> 

в случае вашего вопроса вы можете попробовать следующее:

 $string1='reply-234-private'; echo GetStringBetween ($string1, "-", "-") 

или мы можем использовать любую «строку идентификатора» для захвата строки между строкой идентификатора. например:

 echo GetStringBetween ($string1, "reply-", "-private") 

Использовать встроенные функции поддержки регулярных выражений php preg_match_all

это поможет, предположим, вы хотите, чтобы массив строк (ключей) между @@ в следующем примере, где «/» не попадает между ними, вы можете построить новый пример с разными начальными значениями конечной переменной

 function getInbetweenStrings($start, $end, $str){ $matches = array(); $regex = "/$start([a-zA-Z0-9_]*)$end/"; preg_match_all($regex, $str, $matches); return $matches[1]; } $str = "C://@@ad_custom_attr1@@/@@upn@@/@@samaccountname@@"; $str_arr = getInbetweenStrings('@@', '@@', $str); print_r($str_arr); 
 $myString = 'reply-234-private'; echo str_replace('-','',filter_var($myString,FILTER_SANITIZE_NUMBER_INT)); 

Это должно выполнить эту работу.

Если вы хотите сделать это в js, попробуйте эту функцию –

 function getStringBetween(str , fromStr , toStr){ var fromStrIndex = str.indexOf(fromStr) == -1 ? 0 : str.indexOf(fromStr) + fromStr.length; var toStrIndex = str.slice(fromStrIndex).indexOf(toStr) == -1 ? str.length-1 : str.slice(fromStrIndex).indexOf(toStr) + fromStrIndex; var strBtween = str.substring(fromStrIndex,toStrIndex); return strBtween; }