[問題] 正規表達式求解

作者: mydoc (成為守護神)   2015-09-10 19:29:40
我用的是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)
我完全不能理解正規表達式,短一點的還好,一長起來就很難控制了
希望各位能解惑,謝謝
作者: LPH66 (-6.2598534e+18f)   2015-09-10 19:36:00
[^...] 不是 "非裡面這字串", 而是 "非裡面這幾個字"你應該要用 (?!...) negative lookahead "這裡沒有這東西"唔, 我看錯需求了...你要的應該是 (?<=...)positive lookbehind "剛才看過這東西"也就是 /(?<=img src=')[^']+/或者你就乾脆全部抓起來 /img src='([^']+)'/ 再用 \1 代換取代字串裡寫 \1 就是第一組 ()我沒搞錯的話後者應該效率會好一些
作者: pttnews (PTT新聞)   2015-09-25 21:16:00
我沒寫過PHP, 你可以先用<img([\ ])+(src|SRC)([\ ])*=([ ])*(\'|\")[\w]+\.[\w]+算了我用回文

Links booklink

Contact Us: admin [ a t ] ucptt.com