[問題] 正規表達式求解

看板RegExp作者 (成為守護神)時間8年前 (2015/09/10 19:29), 編輯推噓2(209)
留言11則, 2人參與, 最新討論串1/2 (看更多)
我用的是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://www.ptt.cc/bbs/RegExp/M.1441884586.A.DC1.html

09/10 19:36, , 1F
[^...] 不是 "非裡面這字串", 而是 "非裡面這幾個字"
09/10 19:36, 1F

09/10 19:37, , 2F
你應該要用 (?!...) negative lookahead "這裡沒有這東西"
09/10 19:37, 2F

09/10 19:38, , 3F
唔, 我看錯需求了...你要的應該是 (?<=...)
09/10 19:38, 3F

09/10 19:38, , 4F
positive lookbehind "剛才看過這東西"
09/10 19:38, 4F

09/10 19:39, , 5F
也就是 /(?<=img src=')[^']+/
09/10 19:39, 5F

09/10 19:40, , 6F
或者你就乾脆全部抓起來 /img src='([^']+)'/ 再用 \1 代換
09/10 19:40, 6F

09/10 19:40, , 7F
取代字串裡寫 \1 就是第一組 ()
09/10 19:40, 7F

09/10 19:41, , 8F
我沒搞錯的話後者應該效率會好一些
09/10 19:41, 8F

09/25 21:16, , 9F
我沒寫過PHP, 你可以先用
09/25 21:16, 9F

09/25 21:16, , 10F
<img([\ ])+(src|SRC)([\ ])*=([ ])*(\'|\")[\w]+\.[\w]+
09/25 21:16, 10F

09/25 21:17, , 11F
算了我用回文
09/25 21:17, 11F
文章代碼(AID): #1LyMcgt1 (RegExp)
文章代碼(AID): #1LyMcgt1 (RegExp)