本篇文章不涉及具體業務邏輯,單純從技術的角度談論(.net,sql,正則表達式)
以下爲是 好友/同事 問我的一些問題的 整理.
1.SQL 部分語法及函數 不熟
在sqlserver 裏面, 有一個語法, if exist ...else ..., 但是這個語法, 在 oracle 裏面沒有
在oracle裏面實現 就需要另外想辦法了.(純sql查詢/ sql+C#代碼 / 函數,存儲過程)
2.C# 基礎的函數使用不熟
2.1 初始化一個Dictionary<int,string>的字典,並且給初始數據
一開始我想到的是 (1):
Dictionary<int,string>dict = new Dictionary<int,string>();
dict .add(1,"張三");
dict .add(2,"李四");
其實更簡潔的寫法爲(2):
Dictionary<int,string>dict = new Dictionary<int,string>{(1,"張三")),(2,"李四")};
有些很基礎的知識,沒怎麼用,就忘記了.或者說習慣性的用(1) 導致 忽略了 (2) .
3.正則表達式,解決問題的關鍵
有一些業務, 需要用到正則表達式做模糊匹配, 但是我發現 同事/朋友 對這個 真的不是很熟,以至於一些項目/方案 束手無策.
常見的匹配,比如匹配數字,日期,郵箱,ip地址,數值範圍 (1)
複雜匹配: 某一段格式的文本, 範文本標籤(xml格式,html格式) (2)
對於(1) 可以通過具體的練習,查閱先關的 正則表達式語法, 對照着看,對照着練, 練上幾個小時,一天 ,基本 就學會了,
對於(2) 有很多種不同的寫法, 對正則表達式的理解不同,寫出來的表達式就不同,有的便於書寫,比如(.+?),有的 則是複雜的精確匹配,比如 [\s]{0,1}|[\w]{1} 等等
如果對(1)都不是很清楚,直接去寫(2) 自然是會花更多時間,有時候寫出來的還會有錯誤,或者 兼容性不好,文本變一下,就匹配不上了.
回顧我自己關於寫正則表達式,在2013年的爬蟲項目,得到了強化鍛鍊,連續21天寫正則表達式! (正式工作內容就是寫正則表達式)
所以現在我寫正則,對照api看下, 基本不會有什麼問題. 很快也能自己做校驗, 或者看懂別人的正則的意思,並且找出對方的不完善之處.
這個不像VS編譯器會直接告訴你 哪裏寫得不對,完全是個人經驗,這種經驗有助於 區別一般的程序員,還是比較強的程序員.(別人知道,但是不會,你會,你就比別人牛)
PS:以上都是別人問我的一些問題,我做了一下整理. 我就當學習和提高自己. 溫故而知新.(知道再多也沒屁用,沒有漲工資,但是開心)