1

大きなテキストがあります:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse tempor 
faucibus eros. Fusce ac lectus at risus pretium tempor. Curabitur vulputate 
eu nibh at consequat. find'someword' Curabitur id ipsum eget massa condimentum pulvinar in 
ac purus. Donec sollicitudin eros ornare ultricies tristique. find'someword2' Sed condimentum 
eros a ante tincidunt dignissim. 

文字列を検索し、アポストロフィー記号の間の単語を返す最も簡単な方法は何でしょうか?

これまでのところ、私はこれを試しました:

$findme = array('find');
$hay = file_get_contents('text.txt');


foreach($findme as $needle){

    $search = strpos($hay, $needle);

    if($search !== false){
        //Return word inbetween apostrophe
    }
}

アポストロフィの直前に find という単語が常にあることは知っています。

4

1 に答える 1

5

正規表現を使用しないのはなぜですか?

if(preg_match_all("/find'(.+?)'/", $hay, $matches)) {
    array_shift($matches);
    print_r($matches);
}
else {
    //no matches
}

更新:文字列 " find " が固定されていない場合は、その代わりに変数を使用できます。さらに、複数の単語を簡単に区切ることができます。

$prefix = "find|anotherword";
if(preg_match_all("/($prefix)'(.+?)'/", $hay, $matches)) {
    $matches = $matches[2];
    print_r($matches);
}
else {
    //no matches found
}
于 2013-06-25T09:33:35.240 に答える