我正在使用PHP strpos()
在文本段落中查找针。我正在努力找到找到针后的下一个单词。
例如,请考虑以下段落。
$description = "Hello, this is a test paragraph. The SCREENSHOT mysite.com/screenshot.jpg and the LINK mysite.com/link.html is what I want to return.";
我可以使用strpos($description, "SCREENSHOT")
来检测是否存在SCREENSHOT,但是我想在SCREENSHOT之后获取链接,即mysite.com/screenshot.jpg
。以类似的方式,我想检测描述是否包含LINK,然后返回mysite.com/link.html
。
如何使用strpos()
然后返回以下字词?我假设这可能是用RegEx完成的,但我不确定。下一个词是“针后的空格,后面跟着任何东西,然后是空格”。
谢谢!
答案 0 :(得分:1)
您可以使用单个正则表达式执行此操作:
if (preg_match_all('/(SCREENSHOT|LINK) (\S+?)/', $description, $matches)) {
$needles = $matches[1]; // The words SCREENSHOT and LINK, if you need them
$links = $matches[2]; // Contains the screenshot and/or link URLs
}
答案 1 :(得分:1)
我使用以下内容对我的网站进行了一些测试:
$description = "Hello, this is a test paragraph. The SCREENSHOT mysite.com/screenshot.jpg and the LINK mysite.com/link.html is what I want to return.";
$matches = array();
preg_match('/(?<=SCREENSHOT\s)[^\s]*/', $description, $matches);
var_dump($matches);
echo '<br />';
preg_match('/(?<=LINK\s)[^\s]*/', $description, $matches);
var_dump($matches);
我正在使用积极的外观来获得你想要的东西。
答案 2 :(得分:1)
或“旧”方式......: - )
$word = "SCREENSHOT ";
$pos = strpos($description, $word);
if($pos!==false){
$link = substr($description, $pos+strlen($word));
$link = substr($link, strpos($link, " "));
}