我的 reg ex 有问题。在 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:”和“">”之间的所有内容并将其替换为其他内容。 这是我的注册表:
cid:.*img\.jpg.*\"
我能得到什么返回?
cid:sdfsdf/img.jpg@23232"> sdfd sfdhg sdjhg sdfsfds dsfdsh kj <img src="cid:sdfsdf/img.jpg@23232"
代替双
cid:sdfsdf/img.jpg@23232
为什么?
最佳答案
你的正则表达式是贪婪的,.*
将匹配最长的可能字符串。许多正则表达式方言允许使用 .*?
来匹配最短的可能字符串,或者您可以限制它,使其不会跨越特定边界,例如与 cid:[^">]*img\.jpg[^">]*"
关于php - 正则表达式 - 获取最后一次出现而不是第一次出现 - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8151092/