如何在字符串之前和之后找到第一次出现双引号"
。当然,我使用preg_match_all()
查找了所有.jpg
个扩展名,我想在此扩展名之后和之前找到"
的第一个匹配项。我过了strpos()
和substr()
,但我做不到。这样做的最快方法是什么?!
例如:
<div data-img="/path/to/the/file.jpg"></div>
或者
<img src="/path/to/the/file.jpg"/>
我只想在"
之前和之后获得.jpg
之前和之后的第一次出现,然后获取双引号之间的路径!
答案 0 :(得分:1)
这是你要找的,第一个'''在'.jpg之前'和之后的那个?
$path = array();
$subst = strpos( $s, '.jpg' );
while ( $subst !== false ) {
$before = strrpos( $s, '"', -$subst ) + 1;
$after = strpos( $s, '"', $subst );
$path[] = substr( $s, $before, $after - $before );
$subst = strpos( $s, '.jpg', $after + 1 );
}
编辑:修正了代码,现在它实际上会在'.jpg'之前和之后找到'''的位置,如果这是您正在寻找的。 p >
Edit2:添加了如何在引号之间获取文件名。
编辑3:看到你的答案后,我终于理解了这个问题!这就是字符串比较的方法!
答案 1 :(得分:1)
非常感谢 Barmar 。这将有助于那些可能有同样问题的人:
preg_match_all('/"[^"]*\.jpg"/', $string, $matches);
print_r($matches);