看板 RegExp 關於我們 聯絡資訊
※ 引述《pttnews (PTT新聞)》之銘言: : 在java 我用 http://java-regex-tester.appspot.com/ 測試 : 在unix 我用 vim 測試 : 最近小弟在學習regular , regular 實屬強大不得不學 : 有很多問題 : 例如: : [a-b[c-d]] 我想要找a-b and c-d : 在vim 沒辦法找到 /[a-b[c-d] : 在java 則可以 : 請問各位高手, 這兩者為何不一? : 找到答案, : Unix 要加上\ : [a-b\[c-d\]] 你一定哪裡搞錯了 [a-b\[c-d\]] 是「a 到 b、或 [、或 c 到 d、或 ]」 這怎麼看都不是「a-b and c-d」... 再說你這句「a-b and c-d」也語焉不詳,究竟你想找的是什麼東西 @@ ---- 然後回到 [a-b[c-d]],它是 [a-b[c-d] 跟著 ] 前一個是「a 到 b、或 [、或 c 到 d」 [] 的規則是平常時候只有 [ 為特殊字,] 不是; 碰到 [ 之後變成 ] 為特殊字,[ 不是 然後這兩個特殊字中間再去套字元類別的規則 也就是 [] 是沒有巢狀結構的,[ 會配上它後面第一個看到的 ] 把中間一把抓 原式找不到東西的原因多半就是因為這樣而留在外面的最後一個 ] 吧 在外面 ] 不是特殊字所以它就要求對上一個 ] 字 -- LPH [acronym] = Let Program Heal us -- New Uncyclopedian Dictionary, Minmei Publishing Co. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.30.49 ※ 文章網址: https://www.ptt.cc/bbs/RegExp/M.1443176561.A.4C5.html
pttnews: 謝謝L大, 我想要測試 交集 跟 聯集 09/25 21:00
pttnews: http://goo.gl/hY9mHX 09/25 21:01
pttnews: 按照他上面的說明 [a-d[m-p]]聯集 [a-z&&[def]]交集 09/25 21:02
pttnews: 事實上, 好像如你所說[]被當成字元看待 09/25 21:04
pttnews: 請問是不是他說錯了 09/25 21:04
LPH66: 應該是他弄錯了...常見的 regexp 的 character class 09/25 21:41
LPH66: 直接寫一起就是聯集, 如 [a-dm-p] 09/25 21:41
LPH66: 交集的話我不太確定, 似乎有 google 到好像部份的 regexp 09/25 21:43
LPH66: 支援他講的 && 語法的樣子 09/25 21:43
LPH66: 啊, 找到文件了: 他講的那種交集聯集語法 java 有支援 09/25 21:47
LPH66: 所以你在那個網站上面測試會如你所預期 09/25 21:47
LPH66: Oracle 官方說明文件→http://tinyurl.com/o7dz2g2 09/25 21:48
LPH66: 但那種語法一般的 PCRE regexp 是不支援的 09/25 21:49
LPH66: 所以 vim 才試不出來 09/25 21:49
pttnews: 謝謝L大 09/25 22:08
pttnews: 好像.NET也有一些奇怪的語法 09/25 22:09
pttnews: 先不管~現有這些夠用了 09/25 22:10