繁体   English   中英

Preg_Replace两个字符串之间的字符串

[英]Preg_Replace string between two strings

我有一个弦

<img alt="cid:image037.gif@01CDF804.C17FACA0" src="image021.gif" id="Picture_x0020_1" border="0" height="26" width="156">

我想用image037.gif替换cid: image037.gif@01CDF804.C17FACA0

我知道这可以通过strpos和substr来完成,但是出于好奇,我想知道如何使用正则表达式来实现。

另外,如果这里有人可以在正则表达式上提供一些不错的文章,技巧和窍门,或者可以帮助我们了解如何学习正则表达式的任何东西,那将是很棒的。

尝试:

echo preg_replace('~<img(.+?)alt="cid:(.+?)@.+?"(.*?)>~', '<img$1alt="$2"$3>', $string);

演示

regex101.com是一个可以学习和练习regex的好网站。 在那里查看您的解释 您还可以进行测验。

尝试这个:

echo preg_replace('#<img(.+?)alt="[^:]+:([^@]+)@[^"]+"(.*?)>#', '<img$1alt="$2"$3>', $string);

正则表达式可视化

考虑到该模式将不会在自由文本内找到(意味着在html标签之外)。

print preg_replace('/"cid:(.+)@[a-zA-Z0-9\.]+"/', '$1', $string);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM