![]() |
PCDVD數位科技討論區
(https://www.pcdvd.com.tw/index.php)
- 七嘴八舌異言堂
(https://www.pcdvd.com.tw/forumdisplay.php?f=12)
- - C 語言的測驗題
(https://www.pcdvd.com.tw/showthread.php?t=1088332)
|
|---|
程式寫不好才會去背這種題目吧...
基本的優先順序分得出來就好了(+-*/||&&!) 現在都推廣多用括號 直接用運算子不是不行,但是在合作做專案的時候 寫出來的程式不是只有自己在看 |
引用:
主要負責維護一組 Parser Generator,由 C 寫的 NFA->DFA、LALR,和 DB Engine 的 index (b-tree+)、cache(hash、LRU)、log manager。 好吧!看來我很機車,當然這個職位的工作也很機車。 |
引用:
可否私下告知是那家公司?? 我下次好避開來... regular expression 本身我並不認為是語意不清的東西 , 因為早年我常寫Perl 分析Log file 就是靠它來進行Log file的分析 , 不論LOG message 如何變化 , 總能夠落入我寫的pattern 裡 只是regular expression本身並不好學 , 我看過的幾本C/C++ 及 Java Programming的書 對這方面的著墨也都不深 , 有提到的也不多!! 目前看過的還是只有那本Perl Programming 駱駝書最為清楚!! 但是,看過的人也都很容易不小心進入夢鄉去了.... :D :D :D 那一個章節,還是要一邊搭配實例來驗證比較好,至少不會睡覺去.... :laugh: |
引用:
:laugh: regular expression我都拿google到的來改 只是偶爾會用到而已,完全不會想弄到很精深 |
1. 單純不讓 user 用 hex editor 修改的字串加解密,完全不需要用 RE,最簡單的方式就是把字元做 xor 運算,然後把運算完的字元跟第二個字元運算,再把運算完的字元跟第三個字元運算,直到遍歷整個字串(或整個檔案),要解密就是反過來做一次就可以,如果想要做不可逆的編碼就改用 or 即可。
2. 要使用 RE,也不需要自己寫,C 上面早就有很成功的 RE lib,如PCRE... 3. 大公司考 RE 很常見,尤其是以 linux 做開發的公司,像我們公司考題也有 RE (實際上是考 sed, awk 等),畢竟一個 linux 老手不會 RE 實在說不過去。 4. 如果該職位給薪不錯要找高手,那我覺得考運算元優先順序一點也不機車,當然不可能要求全部運算元都寫出來,能寫出個六七成就算過關了,當然更適合的做法是列出來讓考者排順序較佳。 我覺得比較白目的考題像是 a +++++ b, malloc(0),而且還特多公司愛考這種,我要看到就直接不寫,因為這種水準的公司不會是我想去的。 :think: :think: :think: :think: :think: |
Regular Expression不同的工具會有不同的表示及規則,沒有一套標準。所以學起來會很亂。
像是有的用 "." 代表單一任意字元,有的用 "?" 有的 +, * 本身就代表重複字元,有的則只代表「重複」,也就是有的用 "+", 其實和另一種工具的 ".+" 同義。 還有更多複雜的相異處,所以考 Regular Expression 本身就不是一件很聰明的事,因為你不知道應徵者習慣用哪一種。反而有時候會難以判斷對方是真懂還是在亂寫。 真要考也要把使用哪一種規則的 Regular expression 講好,並把規則表附上。 |
引用:
常用的人還是會常需要查規則表嗎?我雖然還蠻常用的但只記得幾個常用的符號,其他少用的完全沒記,真的要找麻煩的東西時還是要翻規則表來查查。 還有為什麼微軟的 word 不能支援用 regular expression 來做搜尋,wild card 真的是難用到爆,微軟是有什麼原因不能把regular expression 功能加進 word 嗎?明明很多文字編輯器都有這個功能的呀~ |
考技術應該著重在那些需要幾年培養的部分。 RE會需要很長時間培養嗎 我不清楚
懷念以前考智力測驗 圖像推演等 |
引用:
蠻高招的 :like: |
引用:
re 的 ? 從來都不是匹配 any character,從 posix re, extension, 或是 pcre 到各平台不同實作,所有的 ? 基本上都是 greedy switch,不是 match any character。 有人會說,那我 ls 的 ? 是 match any character 啊,* 是 match any string,很抱歉,那東西叫 glob/wildcard,別把這兩者搞混,真不懂我在講什麼,請在 linux 下執行 man 7 glob http://man7.org/linux/man-pages/man7/glob.7.html 引用:
re 在各不同的實作裡,除了版本不同有所擴展之外,基本的 match rule 都是完全一樣。pcre > re ex > re,大都是一層層堆上去的,也就是 perl re 跟 pcre 提供最多功能,re ex 次之,posix re 最少。 至於各不同應用程式之間實作最大的差異主要是在於 \d 這類跳脫字元的定義,所以我寫 re 一直都會避開使用 \d 這類的寫法,而是用 [0-9] 這種標準寫法。 引用:
因為我寫過啊... 我 20 年前用 x86 asm 寫的編碼程式就這樣寫,因為我不想要讓人用 pctools 改我程式的 copyright 字串,順便上點會當掉 debug/s-ice 的保護... |
| 所有的時間均為GMT +8。 現在的時間是10:18 PM. |
vBulletin Version 3.0.1
powered_by_vbulletin 2026。