Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正则表达式-得到最后一次而不是第一次-为什么?_Php_Regex_Preg Replace - Fatal编程技术网

Php 正则表达式-得到最后一次而不是第一次-为什么?

Php 正则表达式-得到最后一次而不是第一次-为什么?,php,regex,preg-replace,Php,Regex,Preg Replace,我对PHP中的注册表项有问题 我有这样的字符串: sdfsfds dsfdsh kj <img src="cid:sdfsdf/img.jpg@23232"> sdfd sfdhg sdjhg sdfsfds dsfdsh kj <img src="cid:sdfsdf/img.jpg@23232"> sdfd sfdhg sdjhg 我能得到什么回报 cid:sdfsdf/img.jpg@23232"> sdfd sfdhg sdjhg sdfsfds dsf

我对PHP中的注册表项有问题 我有这样的字符串:

sdfsfds dsfdsh kj <img src="cid:sdfsdf/img.jpg@23232"> sdfd sfdhg sdjhg sdfsfds dsfdsh kj <img src="cid:sdfsdf/img.jpg@23232"> sdfd sfdhg sdjhg 
我能得到什么回报

cid:sdfsdf/img.jpg@23232"> sdfd sfdhg sdjhg sdfsfds dsfdsh kj <img src="cid:sdfsdf/img.jpg@23232"

为什么???

你的正则表达式很贪婪。通过在非贪婪量词后添加
来使用非贪婪量词:

cid:.*?img\.jpg.*?\"

您的正则表达式是贪婪的,
*
将匹配最长的字符串。许多正则表达式方言允许
*?
匹配尽可能短的字符串,或者您可以对其进行限制,使其不跨越特定的边界,例如使用
cid:[^”>]*img\.jpg[^”>]*“

这:

/<img\s.*?\bsrc="cid:(.*?)".*?>/
//

其他答案都很好,但我给这个a+1来显示备选答案:
cid:[^”>]*img\.jpg[^”>]*“
cid:.*?img\.jpg.*?\"
/<img\s.*?\bsrc="cid:(.*?)".*?>/