看板 RegExp 關於我們 聯絡資訊
/* 用php的preg_replace() 需要幫 #xxxxx 加連結 但原本寫法會把 &#xxxx; 也加連結而不能正常顯示該字元 應該怎麼修正才對呢?目前試過的兩種寫法如下: */ <pre><? $a=" 測試preg #12829 有空格 #128 #129 #130 沒空格#128#129#130 要取代#16888 但不取代&#16888; "; echo preg_replace('/#(\\d+)/', '<a href=de.php?no=\\1>#\\1</a>', $a); echo "↑會取代&#"; echo preg_replace('/(?!&).#(\\d+)/', '<a href=de.php?no=\\1>#\\1</a>', $a); echo "↑會吃#前面字元"; ?></pre> -- #1M3y1tdK #1M4JSnoz
jeffbear79: 談風月、評聖愚,追隨大智慧,巧奪班門明夜火,救世廣慈悲
jeffbear79: 好像念起來還挺順的
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.241.104.164 ※ 文章網址: https://www.ptt.cc/bbs/RegExp/M.1484037642.A.B5C.html ※ 編輯: ThiefFan (210.241.104.164), 01/10/2017 16:41:41
LPH66: 用 (?<! ) 這個和 (?! ) 類似, 不過是看前面的 01/10 17:12
LPH66: 同樣地 (?= ) 的向前看版本是 (?<= ) 01/10 17:13
LPH66: 啊, 講反了XD 這叫 Lookbehind, 所以是"回頭看" 01/10 17:14
LPH66: 這樣就可以去掉中間抓前一個字的 . 了 01/10 17:14
ThiefFan: 感謝!! 01/20 21:34