[問題] 井號在regexp裡有特殊作用嗎?

看板RegExp (正規表示式 Regular Expression)作者 (冷杉林)時間17年前 (2008/01/23 17:36), 編輯推噓2(208)
留言10則, 2人參與, 最新討論串1/1
其實這個問題是因為我在研究phpbb3的code, 看到template_compile這個class裡, 有使用像這個樣子的語法: preg_match_all('#<!-- INCLUDE ([a-zA-Z0-9\_\-\+\./]+) -->#', $code, $matches); 雖說據我所知,#沒有特殊意義, 可是我在template裡卻找不到什麼#。 -- ★ 辰星! 歡迎加入五行戰鬥牌的奇幻世界! 太白! 歲星! 官方網站:(內有討論區) 鎮星!熒惑! http://cfe.myweb.hinet.net/ 「當蒼茫天穹中 那並非最閃亮 PTT台大社版:NTU-CFE 但卻最純淨的五顆星 連成一線時, 天與地的共鳴 將永不止歇,其力量可至無限。」 ψrexkimta -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.139.84.247

01/23 17:52, , 1F
那是perl-compatible的語法 需要有前後分隔字元
01/23 17:52, 1F

01/23 17:52, , 2F
一般是用/ 不過這樣一來pattern中有/時就要用\/
01/23 17:52, 2F

01/23 17:52, , 3F
所以可以自行換掉 只要前後分隔字元相同即可
01/23 17:52, 3F

01/23 17:53, , 4F
那這個regexp中就是用#來當分隔字元
01/23 17:53, 4F

01/23 17:59, , 5F
了解,多謝。
01/23 17:59, 5F

01/23 18:00, , 6F
那底線和加號呢?加號我記得在[]裡沒有特殊意義吧?
01/23 18:00, 6F

01/24 14:38, , 7F
對 不過有些人在寫為了統一 不管哪裡的+啦*啦都給\掉
01/24 14:38, 7F

01/24 14:39, , 8F
這樣可以不用去記到底誰在[]裡沒有意義
01/24 14:39, 8F

01/24 14:39, , 9F
反正因為\的關係一定能正確表示他要的字元
01/24 14:39, 9F

01/24 21:09, , 10F
了解了,多謝。
01/24 21:09, 10F
文章代碼(AID): #17bmgYTY (RegExp)
文章代碼(AID): #17bmgYTY (RegExp)