我有一个大文:
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
}
}
我知道在撇号之前总是找到这个词。
答案 0 :(得分: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
}