私の文字列は「reply-234-private」です。「reply-」の後、「-private」の前の番号を取得したいのですが、「234」です。次のコードで試しましたが、空の結果が返されます。
$string = 'reply-234-private';
$display = preg_replace('/reply-(.*?)-private/','',$string);
echo $display;
あなたはただ 爆発 それをすることができます:
<?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];
この記事では、2つのタグまたは2つの文字列の間のすべての文字列を取得する方法について説明します。
<?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
これは、次の例で@@の間に文字列(キー)の配列が必要な場合に役立ちます。ここで、「/」は間にありません。異なるstartを使用して新しい例を作成できます。 end変数
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;
}