確かにこれはすでに他の誰かから尋ねられていますが、私はここでSOを検索しましたが、何も見つかりませんでした
文字列があり、2 つの区切り文字 (2 単語) の間に含まれるすべての単語を含む配列を取得したいと考えています。私は正規表現に自信がないので、この解決策に行き着きましたが、最初のものだけでなく、これらの要件に一致するすべての単語を取得する必要があるため、適切ではありません。
$start_limiter = 'First';
$end_limiter = 'Second';
$haystack = $string;
# Step 1. Find the start limiter's position
$start_pos = strpos($haystack,$start_limiter);
if ($start_pos === FALSE)
{
die("Starting limiter ".$start_limiter." not found in ".$haystack);
}
# Step 2. Find the ending limiters position, relative to the start position
$end_pos = strpos($haystack,$end_limiter,$start_pos);
if ($end_pos === FALSE)
{
die("Ending limiter ".$end_limiter." not found in ".$haystack);
}
# Step 3. Extract the string between the starting position and ending position
# Our starting is the position of the start limiter. To find the string we must take
# the ending position of our end limiter and subtract that from the start limiter
$needle = substr($haystack, $start_pos+1, ($end_pos-1)-$start_pos);
echo "Found $needle";
また、explode() を使用することも考えましたが、正規表現の方が優れていて高速であると思います。