搜尋

隨機推薦

在 Linux 下日常應用和寫程序,免不了和正規表示式打交道,要說這個東西確實非常強大,但是很多語法和規則卻不是那麼容易記下來,往往到了手頭就忘記怎麼寫了。

這裡有兩個正規表示式的速查表,都非常的簡短,只有一頁 A4 紙大小,可以方便的打印出來粘到牆上去,下次再忘記抬個頭就可以了~

第一個是來自 erudil.com 的A Single Page Perl Regular Expression Quick Reference(PDF格式查看)


 imUKQc.jpg (1050×674)

 

用來應付日常要用到正規表示式的工作足以, 如果想深入瞭解一下正規表示式的全部用法的話,還是去買本 O'reilly 的《Mastering Regular Expressions》吧~

一個正則表達式就是由普通字符(例如字符 a 到 z)以及特殊字符(稱為元字符)組成的文字模式。該模式描述在查找文字主體時待匹配的一個或多個字符串。正則表達式作為一個模板,將某個字符模式與所搜索的字符串進行匹配。 


這裡有一些可能會遇到的正則表達式示例: 


Visual Basic VBScript 匹配 

Scripting Edition 


/^\[ \t]*$/ "^\[ \t]*$" 匹配一個空白行。 


/\d{2}-\d{5}/ "\d{2}-\d{5}" 驗證一個ID號碼是否由一個2位字,一 

個連字符以及一個5位數字組成。 


/<(.*)>.*<\/\1>/ "<(.*)>.*<\/\1>" 匹配一個 HTML 標記。 

 

在 Perl 程式中我們常會需要比較某個字串是否合於某個樣式, 以便決定是否對這個字串資料作進一步的處理, 這裡的樣式就是所謂的正規表示式

一個簡單的例子

if ( $str =~ /abc/ ) {
print $str;
}

上面這個例子是說如果 $str 比對符合有 abc 這個字串, 就將 $str 印出來

1. =~ 代表的是比對符合
2. !~ 可以用來表示比對不符合的情形
3. 如果要 case insensitive 比對, 用 /abc/i 代替 /abc/ 即可
4. / 代表比對邊界的開始與結束
5. 如果要比對的字串中含有 / 字元, 以 $str 是否比對符合有 "/home" 字串為例, 比對敘述可以有下面兩種處理方式
a. $str =~ /\/home/
將 / 字元前面加一反斜線 \, 讓字串中的 / 字元不具有比對邊界字元的意思
b. $str =~ m!/home!
透過 m 命令將邊界字元換成其它字元, 在這裡我們將邊界字元換成 !

 

Whisky and a Pipe

Facebook的網站速度做為最關鍵的公司任務之一。在2009年,我們成功地實現了Facebook網站速度提升兩倍。而正是我們的工程師團隊的幾個關鍵的創新使它成為可能。在本文中,我將向大家介紹我們的秘密武器之一,我們稱之為BigPipe的偉大底層技術。

BigPipe是一個重新設計的基礎動態網頁服務體系。大體思路是,分解網頁成叫做Pagelets的小塊,然後通過Web服務器和瀏覽器建立管道並管理他們在不同階段的運行。這是類似於大多數現代微處理器的流水線執行過程:多重指令管線通過不同的處理器執行單元,以達到性能的最佳。雖然BigPipe是對現有的服務網絡基礎過程的重新設計,但它卻不需要改變現有的網絡瀏覽器或服務器,它完全使用PHP和JavaScript來實現。

本文章嘗試著為變數的種類做一個總整理,以期讓讀者能充分掌握每一種變數的特性。

根據宣告方式來為變數分類
根據宣告方式詳細來區分,Java 的變數有七種,下面的程式碼展示了這七種變數的宣告方式:
class MyClass {
static int a;
int b;
public static void myMethod(int c) {
try {
int d;
} catch (Exception e) {
}
}
MyClass(int f) {
int[] g = new int[100];
}
}
  • class variable:宣告在 class 內,method 之外,且使用 static 修飾的變數,例如上面程式碼的 a。
  • instance variable:宣告在 class 內,method 之外,且未使用 static 修飾的變數,例如上面程式碼的 b。
  • method parameter:宣告在 method 小括號內的變數,例如上面程式碼的 c。
  • 狹義的區域變數(local variable):宣告在 method 內的變數,例如上面程式碼的 d 與 g。
  • exception-handler parameter:宣告在 catch 小括號內的變數,例如上面程式碼的 e。
  • constructor parameter:宣告在 constructor 小括號內的變數,例如上面程式碼的 f。
  • 陣列元素(array component):陣列的元素值沒有識別名稱,必須透過陣列和索引值(index)來識別。例如上面程式碼的 g[0]。

我對facebook的運轉著迷。 這是一個很獨特的環境,不容易被複製(他們的體係並不適合所有的公司,即使他們努力嘗試過)。 下面是我和facebook的朋友們關於他們如何開發和管理項目的記錄。

現在距離我收集的這些信息又過去6個月了,我相信facebook肯定又對他們的項目開發實踐進行了改進。 所以這些記錄可能會有點過時。 同時facebook的工程師驅動文化也越來越為大眾所知。 非常感謝那些幫助我整理這篇文章的facebook的朋友們。

 

 

時間: Sat Mar 30 02:04:54 2002 
作者: austen (奧斯汀) 看板: kenduest
標題: 【轉載】程式設計師真情懺悔錄(上)(中)(下)
-來自 JAVA週報
------------------------------------------------
<不負責講座> 程式設計師真情懺悔錄(上) (Sun教育訓練中心 王森)

前言:
不久前,蔡學鏞先生發表了兩篇分別叫做 "程式與香雞排","再論香雞排" 的文章,受到的迴響之大,據說連作者本人都接到該文的轉寄。足以見得該文的內容道出了台灣程式設計師心裡最深處的想法。所以,本文想針對台灣程式設計師來做討論,看看身為一個程式設計師,究竟犯了什麼過錯,導致大家寧願賣雞排也不願再繼續寫程式。璩美鳳小姐為自己驚動台灣社會的行為寫了真情懺悔錄,我們也該真誠地檢討一下自己。

本文:
在台灣,大部分的人都有個認知,就是"搞硬體的比搞軟體的要好賺","做 SA/SD 比 coding 地位要高"。那些做 IC Design 的傢伙待的公司所發的股票,永遠比搞 Software Design 的人待的公司發的還多,股價也高出好幾倍。搞 SA/SD 的人,在公司地位好像也比單純寫程式的人高。於是我的父親有一次問我:"是不是搞硬體的人智商比較高?","是不是搞分析設計的人比較有地位?"

事實上,在學生時期我就認識不少人,有的人因為程式寫不過別人,所以轉換跑道專攻硬體; 也有人覺得每天面對示波器和邏輯分析儀讓他們頭痛,工程數學也學不過人家,所以轉行搞軟體。到了實際上面對許多前來接受教育訓練的學員之後,發現有人是因為寫了十幾年 BIOS 和 driver,覺得乏味而沒有前途,所以想試看看應用程式的開發;有人則是因為受不了客戶每天改需求,而且寫 BIOS 和 driver 的人好像比較少,價格比較高,因此想學習如何撰寫系統軟體。詢問那些上高階課程的朋友,有的人發現自己只會胡做 SA/SD 唬爛老闆和客戶,所以希望重新打好基礎,從基本的 coding 做起; 有的人則因為寫程式寫太久,覺得應該往上走向 SA/SD 的路子,畢竟老了程式就寫不動了。這個世界上什麼樣的人都有,絕對不能以小羨大。就很像搞政治的老是騙我們台灣只分成外省人和本省人; 搞幫派的人告訴我們警察是帶著槍的流氓。實際上,每個族群大家在沒有被分化之前都相處得和樂融融,而雖然有警察擄妓勒索,上班時間跑去聚賭,但是也有開我們罰單時酌情輕罰的警察,和保護我們身家性命的警察。

 

mvc.png

由於採用了Web開發框架來開發項目,所以我首次在真正的項目中採用MVC的開發模式。隨著項目的不斷深入,我也在不斷反思,MVC設計模式到底給項目帶來了什麼?成倍的開發時間?複雜無比的目錄結構?鋪天蓋地的文件數量?聽起來都很難聽對嗎,但是確實如此。那麼MVC所許諾的那些好處呢?清晰的代碼結構,易於維護,易於擴展?真有嗎?

本文譯自美國時代(time.com)的《The Men Who Stole the World》,原作者:Lev Grossman。相當有傳奇色彩,讀起來很爽,翻譯過來。譯得不好,還請大家指正。本中的四個程序員可能並不是那麼聲名顯赫,而且也很不老實,或許算不上成功,不過他們的確改變了世界。而本文有分析了互聯網上P2P的那些事,相當的有參考價值

2010年12月17日更新:修改了一些錯誤,理順了一些語句。
2010年12月19日更新:增加了一些插圖。

————————正文————————

十年前,有四個年輕人改變了這個世界的運作方式。他們使用的並不是法律或是武器或是金錢,而是使用軟件來改變世界。他們當時有著激進和極具破壞性的 想法,並把這些想法付諸於代碼,在Internet上以免費自由方式發佈。這四個人,沒有一個完成了大學學業,卻奠定了今天我們習慣的數字媒體環境的基 礎。然後,因為各種原因,他們也迅速地消失在公眾視野中。

 

Tim Morgan@flickr.com

在我還在上學的時候,key-value這個詞更多的還是和hash表聯繫在一起的。而現在,當我看見key-value這個詞,馬上聯想到的就是 BigTable,SimpleDB和雲計算。當下,key-value store(或者叫key-value Database,雲存儲等等)是個非常時髦的詞彙,越來越多的開發人員(特別是互聯網企業)開始關注和嘗試key-value的存儲形式。這年頭如果你還和別人聊關係型數據庫,貌似你都不好意思和人打招呼。

可是,key-value store真的有這麼神奇嗎?畢竟,關係型數據庫已經主導市場三十多年了。

Please publish modules in offcanvas position.