作者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/m.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