作者mydoc (成为守护神)
看板RegExp
标题[问题] 正规表达式求解
时间Thu Sep 10 19:29:40 2015
我用的是PHP,现在正在写一个网页,
但架构不是佷好,所以必须在Content内文中捞回有关於<img src="XXX">的XXX部份来用
好死不死的给我乱试试到了如
$str = "我爱你爱到没<img src='257.jpg'>人要1234要不要由我来说明接下来要做什麽
?<img src='123.jpg'>";
$str= preg_replace("/[^imgsrc=']+jpg{1}/","",$str);
出来的结果是
我爱你爱到没<img src=''>人要1234要不要由我来说明接下来要做什麽?<img src=''>
但我无论再把[]整组括起来也没办法做到XXX的部份....所以上来请问这如何解套?
本来在车上滑手机滑到PHP板爬文爬到这边来,又很顺便的看到有一个中文介绍表达式的网
但我对手机的操作极生手,所以忘记是滑到哪一篇文下面的推文是该大侠的介绍,
本想回家细阅的结果变成现在伸手牌(QAQ)
我完全不能理解正规表达式,短一点的还好,一长起来就很难控制了
希望各位能解惑,谢谢
--
ο . ╭═══╮╔═╮═╗╭═══╮╔═══╗╔═╗ ο 。
\○ β ║ ═ ║║ ║ ║║╔══╗║ ══╣║ ║ * \● β ‧
τ天 ║╔╗ ║║║ ║║╰╯ ║║ ══╣║ ╚═╗ ─使
﹏◎﹏╚╝╚═╝╚╰══╝╰═══╯╚═══╝╚═══╝ < \ ★~
♂拥有一对翅膀 是守护你的天使 请用hh呼叫他♀ ‧
ψs75287 * 。 ξ快到angelpray板许愿ξ
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.202.160.66
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/RegExp/M.1441884586.A.DC1.html
1F:推 LPH66: [^...] 不是 "非里面这字串", 而是 "非里面这几个字" 09/10 19:36
2F:→ LPH66: 你应该要用 (?!...) negative lookahead "这里没有这东西" 09/10 19:37
3F:→ LPH66: 唔, 我看错需求了...你要的应该是 (?<=...) 09/10 19:38
4F:→ LPH66: positive lookbehind "刚才看过这东西" 09/10 19:38
5F:→ LPH66: 也就是 /(?<=img src=')[^']+/ 09/10 19:39
6F:→ LPH66: 或者你就乾脆全部抓起来 /img src='([^']+)'/ 再用 \1 代换 09/10 19:40
7F:→ LPH66: 取代字串里写 \1 就是第一组 () 09/10 19:40
8F:→ LPH66: 我没搞错的话後者应该效率会好一些 09/10 19:41
9F:推 pttnews: 我没写过PHP, 你可以先用 09/25 21:16
10F:→ pttnews: <img([\ ])+(src|SRC)([\ ])*=([ ])*(\'|\")[\w]+\.[\w]+ 09/25 21:16
11F:→ pttnews: 算了我用回文 09/25 21:17