|
正則表達式規則
|
|
|
String.matches() 這個方法主要是返回是否匹配指定的字符串,如果匹配則為true,否則為false;
如:/**
* 判斷字符創是否是一個有效的日期
*
* @param theStr
* @return true 是,false否
*/
public static boolean isDate(String theStr) {
return theStr.matches("\\d{4}\\-\\d{1,2}\\-\\d{1,2}");
}
這個方法的參數為正則表達式,關于正則表達式的用法如下:
正則表達式(regular expression)描述了一種字符串匹配的模式,可以用來:(1)檢查一個串中是否含有符合某個規則的子串,并且可以得到這個子串;(2)根據匹配規則對字符串進行靈活的替換操作。
正則表達式學習起來其實是很簡單的,不多的幾個較為抽象的概念也很容易理解。之所以很多人感覺正則表達式比較復雜,一方面是因為大多數的文檔沒有做到由淺入深地講解,概念上沒有注意先后順序,給讀者的理解帶來困難;另一方面,各種引擎自帶的文檔一般都要介紹它特有的功能,然而這部分特有的功能并不是我們首先要理解的。
文章中的每一個舉例,都可以點擊進入到測試頁面進行測試。閑話少說,開始。
1. 正則表達式規則
1.1 普通字符
字母、數字、漢字、下劃線、以及后邊章節中沒有特殊定義的標點符號,都是"普通字符"。表達式中的普通字符,在匹配一個字符串的時候,匹配與之相同的一個字符。
舉例1:表達式 "c",在匹配字符串 "abcde" 時,匹配結果是:成功;匹配到的內容是:"c";匹配到的位置是:開始于2,結束于3。(注:下標從0開始還是從1開始,因當前編程語言的不同而可能不同)
舉例2:表達式 "bcd",在匹配字符串 "abcde" 時,匹配結果是:成功;匹配到的內容是:"bcd";匹配到的位置是:開始于1,結束于4。
1.2 簡單的轉義字符
一些不便書寫的字符,采用在前面加 "\" 的方法。這些字符其實我們都已經熟知了。
表達式
|
可匹配
|
\r, \n
|
代表回車和換行符
|
\t
|
制表符
|
\\
|
代表 "\" 本身
|
還有其他一些在后邊章節中有特殊用處的標點符號,在前面加 "\" 后,就代表該符號本身。比如:^, $ 都有特殊意義,如果要想匹配字符串中 "^" 和 "$" 字符,則表達式就需要寫成 "\^" 和 "\$"。
表達式
|
可匹配
|
\^
|
匹配 ^ 符號本身
|
\$
|
匹配 $ 符號本身
|
\.
|
匹配小數點(.)本身
|
這些轉義字符的匹配方法與 "普通字符" 是類似的。也是匹配與之相同的一個字符。
舉例1:表達式 "\$d",在匹配字符串 "abc$de" 時,匹配結果是:成功;匹配到的內容是:"$d";匹配到的位置是:開始于3,結束于5。
1.3 能夠與 '多種字符' 匹配的表達式
正則表達式中的一些表示方法,可以匹配 '多種字符' 其中的任意一個字符。比如,表達式 "\d" 可以匹配任意一個數字。雖然可以匹配其中任意字符,但是只能是一個,不是多個。這就好比玩撲克牌時候,大小王可以代替任意一張牌,但是只能代替一張牌。
表達式
|
可匹配
|
\d
|
任意一個數字,0~9 中的任意一個
|
\w
|
任意一個字母或數字或下劃線,也就是 A~Z,a~z,0~9,_ 中任意一個
|
\s
|
包括空格、制表符、換頁符等空白字符的其中任意一個
|
.
|
小數點可以匹配除了換行符(\n)以外的任意一個字符
|
舉例1:表達式 "\d\d",在匹配 "abc123" 時,匹配的結果是:成功;匹配到的內容是:"12";匹配到的位置是:開始于3,結束于5。
舉例2:表達式 "a.\d",在匹配 "aaa100" 時,匹配的結果是:成功;匹配到的內容是:"aa1";匹配到的位置是:開始于1,結束于4。
1.4 自定義能夠匹配 '多種字符' 的表達式
使用方括號 [ ] 包含一系列字符,能夠匹配其中任意一個字符。用 [^ ] 包含一系列字符,則能夠匹配其中字符之外的任意一個字符。同樣的道理,雖然可以匹配其中任意一個,但是只能是一個,不是多個。
表達式
|
可匹配
|
[ab5@]
|
匹配 "a" 或 "b" 或 "5" 或 "@"
|
[^abc]
|
匹配 "a","b","c" 之外的任意一個字符
|
[f-k]
|
匹配 "f"~"k" 之間的任意一個字母
|
[^A-F0-3]
|
匹配 "A"~"F","0"~"3" 之外的任意一個字符
|
舉例1:表達式 "[bcd][bcd]" 匹配 "abc123" 時,匹配的結果是:成功;匹配到的內容是:"bc";匹配到的位置是:開始于1,結束于3。
舉例2:表達式 "[^abc]" 匹配 "abc123" 時,匹配的結果是:成功;匹配到的內容是:"1";匹配到的位置是:開始于3,結束于4。
1.5 修飾匹配次數的特殊符號
前面章節中講到的表達式,無論是只能匹配一種字符的表達式,還是可以匹配多種字符其中任意一個的表達式,都只能匹配一次。如果使用表達式再加上修飾匹配次數的特殊符號,那么不用重復書寫表達式就可以重復匹配。
使用方法是:"次數修飾"放在"被修飾的表達式"后邊。比如:"[bcd][bcd]" 可以寫成 "[bcd]{2}"。
表達式
|
作用
|
{n}
|
表達式重復n次,比如:"\w{2}" 相當于 "\w\w";"a{5}" 相當于 "aaaaa"
|
{m,n}
|
表達式至少重復m次,最多重復n次,比如:"ba{1,3}"可以匹配 "ba"或"baa"或"baaa"
|
{m,}
|
表達式至少重復m次,比如:"\w\d{2,}"可以匹配 "a12","_456","M12344"...
|
?
|
匹配表達式0次或者1次,相當于 {0,1},比如:"a[cd]?"可以匹配 "a","ac","ad"
|
+
|
表達式至少出現1次,相當于 {1,},比如:"a+b"可以匹配 "ab","aab","aaab"...
|
*
|
表達式不出現或出現任意次,相當于 {0,},比如:"\^*b"可以匹配 "b","^^^b"...
|
舉例1:表達式 "\d+\.?\d*" 在匹配 "It costs $12.5" 時,匹配的結果是:成功;匹配到的內容是:"12.5";匹配到的位置是:開始于10,結束于14。
舉例2:表達式 "go{2,8}gle" 在匹配 "Ads by goooooogle" 時,匹配的結果是:成功;匹配到的內容是:"goooooogle";匹配到的位置是:開始于7,結束于17。
1.6 其他一些代表抽象意義的特殊符號
一些符號在表達式中代表抽象的特殊意義:
表達式
|
作用
|
^
|
與字符串開始的地方匹配,不匹配任何字符
|
$
|
與字符串結束的地方匹配,不匹配任何字符
|
\b
|
匹配一個單詞邊界,也就是單詞和空格之間的位置,不匹配任何字符
|
進一步的文字說明仍然比較抽象,因此,舉例幫助大家理解。
舉例1:表達式 "^aaa" 在匹配 "xxx aaa xxx" 時,匹配結果是:失敗。因為 "^" 要求與字符串開始的地方匹配,因此,只有當 "aaa" 位于字符串的開頭的時候,"^aaa" 才能匹配,比如:"aaa xxx xxx"。
舉例2:表達式 "aaa$" 在匹配 "xxx aaa xxx" 時,匹配結果是:失敗。因為 "$" 要求與字符串結束的地方匹配,因此,只有當 "aaa" 位于字符串的結尾的時候,"aaa$" 才能匹配,比如:"xxx xxx aaa"。
舉例3:表達式 ".\b." 在匹配 "@@@abc" 時,匹配結果是:成功;匹配到的內容是:"@a";匹配到的位置是:開始于2,結束于4。
進一步說明:"\b" 與 "^" 和 "$" 類似,本身不匹配任何字符,但是它要求它在匹配結果中所處位置的左右兩邊,其中一邊是 "\w" 范圍,另一邊是 非"\w" 的范圍。
舉例4:表達式 "\bend\b" 在匹配 "weekend,endfor,end" 時,匹配結果是:成功;匹配到的內容是:"end";匹配到的位置是:開始于15,結束于18。
一些符號可以影響表達式內部的子表達式之間的關系:
表達式
|
作用
|
|
|
左右兩邊表達式之間 "或" 關系,匹配左邊或者右邊
|
( )
|
(1). 在被修飾匹配次數的時候,括號中的表達式可以作為整體被修飾
(2). 取匹配結果的時候,括號中的表達式匹配到的內容可以被單獨得到
|
舉例5:表達式 "Tom|Jack" 在匹配字符串 "I'm Tom, he is Jack" 時,匹配結果是:成功;匹配到的內容是:"Tom";匹配到的位置是:開始于4,結束于7。匹配下一個時,匹配結果是:成功;匹配到的內容是:"Jack";匹配到的位置時:開始于15,結束于19。
舉例6:表達式 "(go\s*)+" 在匹配 "Let's go go go!" 時,匹配結果是:成功;匹配到內容是:"go go go";匹配到的位置是:開始于6,結束于14。
舉例7:表達式 "¥(\d+\.?\d*)" 在匹配 "$10.9,¥20.5" 時,匹配的結果是:成功;匹配到的內容是:"¥20.5";匹配到的位置是:開始于6,結束于10。單獨獲取括號范圍匹配到的內容是:"20.5"。
2. 正則表達式中的一些高級規則
2.1 匹配次數中的貪婪與非貪婪
在使用修飾匹配次數的特殊符號時,有幾種表示方法可以使同一個表達式能夠匹配不同的次數,比如:"{m,n}", "{m,}", "?", "*", "+",具體匹配的次數隨被匹配的字符串而定。這種重復匹配不定次數的表達式在匹配過程中,總是盡可能多的匹配。比如,針對文本 "dxxxdxxxd",舉例如下:
表達式
|
匹配結果
|
(d)(\w+)
|
"\w+" 將匹配第一個 "d" 之后的所有字符 "xxxdxxxd"
|
(d)(\w+)(d)
|
"\w+" 將匹配第一個 "d" 和最后一個 "d" 之間的所有字符 "xxxdxxx"。雖然 "\w+" 也能夠匹配上最后一個 "d",但是為了使整個表達式匹配成功,"\w+" 可以 "讓出" 它本來能夠匹配的最后一個 "d"
|
由此可見,"\w+" 在匹配的時候,總是盡可能多的匹配符合它規則的字符。雖然第二個舉例中,它沒有匹配最后一個 "d",但那也是為了讓整個表達式能夠匹配成功。同理,帶 "*" 和 "{m,n}" 的表達式都是盡可能地多匹配,帶 "?" 的表達式在可匹配可不匹配的時候,也是盡可能的 "要匹配"。這 種匹配原則就叫作 "貪婪" 模式 。
非貪婪模式:
在修飾匹配次數的特殊符號后再加上一個 "?" 號,則可以使匹配次數不定的表達式盡可能少的匹配,使可匹配可不匹配的表達式,盡可能的 "不匹配"。這種匹配原則叫作 "非貪婪" 模式,也叫作 "勉強" 模式。如果少匹配就會導致整個表達式匹配失敗的時候,與貪婪模式類似,非貪婪模式會最小限度的再匹配一些,以使整個表達式匹配成功。舉例如下,針對文本 "dxxxdxxxd" 舉例:
表達式
|
匹配結果
|
(d)(\w+?)
|
"\w+?" 將盡可能少的匹配第一個 "d" 之后的字符,結果是:"\w+?" 只匹配了一個 "x"
|
(d)(\w+?)(d)
|
為了讓整個表達式匹配成功,"\w+?" 不得不匹配 "xxx" 才可以讓后邊的 "d" 匹配,從而使整個表達式匹配成功。因此,結果是:"\w+?" 匹配 "xxx"
|
更多的情況,舉例如下:
舉例1:表達式 "<td>(.*)</td>" 與字符串 "<td><p>aa</p></td> <td><p>bb</p></td>" 匹配時,匹配的結果是:成功;匹配到的內容是 "<td><p>aa</p></td> <td><p>bb</p></td>" 整個字符串, 表達式中的 "</td>" 將與字符串中最后一個 "</td>" 匹配。
舉例2:相比之下,表達式 "<td>(.*?)</td>" 匹配舉例1中同樣的字符串時,將只得到 "<td><p>aa</p></td>", 再次匹配下一個時,可以得到第二個 "<td><p>bb</p></td>"。
2.2 反向引用 \1, \2...
表達式在匹配時,表達式引擎會將小括號 "( )" 包含的表達式所匹配到的字符串記錄下來。在獲取匹配結果的時候,小括號包含的表達式所匹配到的字符串可以單獨獲取。這一點,在前面的舉例中,已經多次展示了。在實際應用場合中,當用某種邊界來查找,而所要獲取的內容又不包含邊界時,必須使用小括號來指定所要的范圍。比如前面的 "<td>(.*?)</td>"。
其實,"小括號包含的表達式所匹配到的字符串" 不僅是在匹配結束后才可以使用,在匹配過程中也可以使用。表達式后邊的部分,可以引用前面 "括號內的子匹配已經匹配到的字符串"。引用方法是 "\" 加上一個數字。"\1" 引用第1對括號內匹配到的字符串,"\2" 引用第2對括號內匹配到的字符串……以此類推,如果一對括號內包含另一對括號,則外層的括號先排序號。換句話說,哪一對的左括號 "(" 在前,那這一對就先排序號。
舉例如下:
舉例1:表達式 "('|")(.*?)(\1)" 在匹配 " 'Hello', "World" " 時,匹配結果是:成功;匹配到的內容是:" 'Hello' "。再次匹配下一個時,可以匹配到 " "World" "。
舉例2:表達式 "(\w)\1{4,}" 在匹配 "aa bbbb abcdefg ccccc 111121111 999999999" 時,匹配結果是:成功;匹配到的內容是 "ccccc"。再次匹配下一個時,將得到 999999999。這個表達式要求 "\w" 范圍的字符至少重復5次,注意與 "\w{5,}" 之間的區別。
舉例3:表達式 "<(\w+)\s*(\w+(=('|").*?\4)?\s*)*>.*?</\1>" 在匹配 "<td id='td1' style="bgcolor:white"></td>" 時,匹配結果是成功。如果 "<td>" 與 "</td>" 不配對,則會匹配失敗;如果改成其他配對,也可以匹配成功。
|
|
在java語言中使用正則表達式
|
|
|
首先讓我們構成一個正則表達式。為簡單起見,先構成一個正則表達式來識別下面格式的電話號碼數字:(nnn)nnn-nnnn。
第一步,創建一個pattern對象來匹配上面的子字符串。一旦程序運行后,如果需要的話,可以讓這個對象一般化。匹配上面格式的正則表達可以這樣構成: (\d{3})\s\d{3}-\d{4},其中\d單字符類型用來匹配從0到9的任何數字,另外{3}重復符號,是個簡便的記號,用來表示有3個連續的數字位,也等效于(\d\d\d)。\s也另外一個比較有用的單字符類型,用來匹配空格,比如Space鍵,tab鍵和換行符。
是不是很簡單?但是,如果把這個正則表達式的模式用在java程序中,還要做兩件事。對java的解釋器來說,在反斜線字符(\)前的字符有特殊的含義。在java中,與regex有關的包,并不都能理解和識別反斜線字符(\),盡管可以試試看。但為避免這一點,即為了讓反斜線字符(\)在模式對象中被完全地傳遞,應該用雙反斜線字符(\)。此外圓括號在正則表達中兩層含義,如果想讓它解釋為字面上意思(即圓括號),也需要在它前面用雙反斜線字符(\)。也就是像下面的一樣:
\\(\\d{3}\\)\\s\\d{3}-\\d{4}
現在介紹怎樣在java代碼中實現剛才所講的正則表達式。要記住的事,在用正則表達式的包時,在你所定義的類前需要包含該包,也就是這樣的一行:
import java.util.regex.*;
下面的一段代碼實現的功能是,從一個文本文件逐行讀入,并逐行搜索電話號碼數字,一旦找到所匹配的,然后輸出在控制臺。
BufferedReader in;
Pattern pattern = Pattern.compile("\\(\\d{3}\\)\\s\\d{3}-\\d{4}");
in = new BufferedReader(new FileReader("phone"));
String s;
while ((s = in.readLine()) != null)
{
Matcher matcher = pattern.matcher(s);
if (matcher.find())
{
System.out.println(matcher.group());
}
}
in.close();
對那些熟悉用Python或Javascript來實現正則表達式的人來說,這段代碼很平常。在Python和Javascript這些語言中,或者其他的語言,這些正則表達式一旦明確地編譯過后,你想用到哪里都可以。與Perl的單步匹配相比,看起來多多做了些工作,但這并不很費事。
find()方法,就像你所想象的,用來搜索與正則表達式相匹配的任何目標字符串,group()方法,用來返回包含了所匹配文本的字符串。應注意的是,上面的代碼,僅用在每行只能含有一個匹配的電話號碼數字字符串時。可以肯定的說,java的正則表達式包能用在一行含有多個匹配目標時的搜索。本文的原意在于舉一些簡單的例子來激起讀者進一步去學習java自帶的正則表達式包,所以對此就沒有進行深入的探討。
這相當漂亮吧! 但是很遺憾的是,這僅是個電話號碼匹配器。很明顯,還有兩點可以改進。如果在電話號碼的開頭,即區位號和本地號碼之間可能會有空格。我們也可匹配這些情況,則通過在正則表達式中加入\s?來實現,其中?元字符表示在模式可能有0或1個空格符。
第二點是,在本地號碼位的前三位和后四位數字間有可能是空格符,而不是連字號,更有勝者,或根本就沒有分隔符,就是7位數字連在一起。對這幾種情況,我們可以用(-|)?來解決。這個結構的正則表達式就是轉換器,它能匹配上面所說的幾種情況。在()能含有管道符|時,它能匹配是否含有空格符或連字符,而尾部的?元字符表示是否根本沒有分隔符的情況。
最后,區位號也可能沒有包含在圓括號內,對此可以簡單地在圓括號后附上?元字符,但這不是一個很好的解決方法。因為它也包含了不配對的圓括號,比如" (555" 或 "555)"。相反,我們可以通過另一種轉換器來強迫讓電話號碼是否帶有有圓括號:(\(\d{3}\)|\d{3})。如果我們把上面代碼中的正則表達式用這些改進后的來替換的話,上面的代碼就成了一個非常有用的電話號碼數字匹配器:
Pattern pattern =
Pattern.compile("(\\(\\d{3}\\)|\\d{3})\\s?\\d{3}(-|)?\\d{4}");
可以確定的是,你可以自己試著進一步改進上面的代碼。
現在看看第二個例子,它是從Friedl的中改編過來的。其功能是用來檢查文本文件中是否有重復的單詞,這在印刷排版中會經常遇到,同樣也是個語法檢查器的問題。
匹配單詞,像其他的一樣,也可以通過好幾種的正則表達式來完成。可能最直接的是\b\w+\b,其優點在于只需用少量的regex元字符。其中\w元字符用來匹配從字母a到u的任何字符。+元字符表示匹配匹配一次或多次字符,\b元字符是用來說明匹配單詞的邊界,它可以是空格或任何一種不同的標點符號(包括逗號,句號等)。
現在,我們怎樣來檢查一個給定的單詞是否被重復了三次?為完成這個任務,需充分利用正則表達式中的所熟知的向后掃描。如前面提到的,圓括號在正則表達式中有幾種不同的用法,一個就是能提供組合類型,組合類型用來保存所匹配的結果或部分匹配的結果(以便后面能用到),即使遇到有相同的模式。在同樣的正則表達中,可能(也通常期望)不止有一個組合類型。在第n個組合類型中匹配結果可以通過向后掃描來獲取到。向后掃描使得搜索重復的單詞非常簡單:\b(\w+) \s+\1\b。
圓括號形成了一個組合類型,在這個正則表示中它是第一組合類型(也是僅有的一個)。向后掃描\1,指的是任何被\w+所匹配的單詞。我們的正則表達式因此能匹配這樣的單詞,它有一個或多個空格符,后面還跟有一個與此相同的單詞。注意的是,尾部的定位類型(\b)必不可少,它可以防止發生錯誤。如果我們想匹配"Paris in the the spring",而不是匹配"Java's regex package is the theme of this article"。根據java現在的格式,則上面的正則表達式就是:Pattern pattern =Pattern.compile("\\b(\\w+)\\s+\\1\\b");
最后進一步的修改是讓我們的匹配器對大小寫敏感。比如,下面的情況:"The the theme of this article is the Java's regex package.",這一點在regex中能非常簡單地實現,即通過使用在Pattern類中預定義的靜態標志CASE_INSENSITIVE :
Pattern pattern =Pattern.compile("\\b(\\w+)\\s+\\1\\b",
Pattern.CASE_INSENSITIVE);
有關正則表達式的話題是非常豐富,而且復雜的,用Java來實現也非常廣泛,則需要對regex包進行的徹底研究,我們在這里所講的只是冰山一角。即使你對正則表達式比較陌生,使用regex包后會很快發現它強大功能和可伸縮性。如果你是個來自Perl或其他語言王國的老練的正則表達式的黑客,使用過 regex包后,你將會安心地投入到java的世界,而放棄其他的工具,并把java的regex包看成是手邊必備的利器。
|
|
摘要: 莫小米文章
地址:http://blog.tianya.cn/blogger/view_blog.asp?BlogName=xiaomi520&idWriter=0&Key=0
幾米語錄:
米語錄 生活永遠不是童話
... 閱讀全文
**君子恥其言而過其行**
typedef int* pint;
typedef pint* ppint;
void func(ppint &x)
{
x = new int*;
*x= new int(32);
}
//使用方法
int **p=0;
func(p);
cout<<(**p)<<endl;
int *pV;
pV = new int(2); //這里注意與在cpp中與java中語法的差異
cout<<"PV = "<<(*pV)<<endl;
int ival = 1024;
int *pi = &ival;
int* &ptrVal2 = pi;
菩提本無樹 (2009-04-04 17:48:59)
佛對我說:你的心上有塵。我用力地擦拭。
佛說:你錯了,塵是擦不掉的。我于是將心剝了下來.
佛又說:你又錯了,塵本非塵,何來有塵
我想這是從神秀和慧能那兩個偈子引申出來。
神秀說:“身是菩提樹,心如明鏡臺,時時勤拂拭,勿使惹塵埃。”
慧能說:“菩提本無樹,明鏡亦非臺,本來無一物,何處惹塵埃。”
的確,要能夠參透這兩個偈子的確很難,就是正確的理解也不易。
身是菩提樹,心如明鏡臺,時時勤拂拭,勿使惹塵埃
眾生的身體就是一棵覺悟的智慧樹,
眾生的心靈就象一座明亮的臺鏡。
要時時不斷地將它撣拂擦試,
不讓它被塵垢污染障蔽了光明的本性。
菩提本無樹,明鏡亦非臺,本來無一物,何處惹塵埃
菩提原本就沒有樹,
明亮的鏡子也并不是臺。
本來就是虛無沒有一物,
那里會染上什么塵埃?
這首畿子可以看出慧能是個有大智慧的人(后世有人說他是十世比丘轉世),他這個畿子很契合禪宗的頓悟的理念。是一種出世的態度,主要意思是,世上本來就是空的,看世間萬物無不是一個空字,心本來就是空的話,就無所謂抗拒外面的誘惑,任何事物從心而過,不留痕跡。這是禪宗的一種很高的境界,領略到這層境界的人,就是所謂的開悟了。
禪的境界一花一世界,一葉一如來。這樣的境界,是何等的完美。
禪的生活是非常樸實,沒有欲望及貪求的,一切的作用都能融入空性。空不是什么都沒有,而是使自己生活得更逍遙自在,如魚得水。做事不要過于認真執著,而是要認真雕刻。
禪是“感情”的生活,禪的感情就是無緣大悲,同體大悲的心量。
禪是啟發我們要學會舍得;真正的快樂只有舍得才能得,從舍中構筑一切的有。要辨證的看待擁有和失去,擁有不一定快樂,因為一旦想要擁有煩惱就出現了,因為“有”未必不是一種負擔,只有豁達地看待得與失,成與敗,擁有一顆無所得的心,你才會快樂。
最快樂的生活,就是善于馭心的生活。境不轉心轉,如果能夠常常調心,就能常生喜悅而少煩惱。
佛法教我們把快樂和痛苦都放下,但是,放下并不是不去追求,而是隨緣不變。
當我們能了解到,環境是無法控制、變化無常的,就能獲致真正的快樂與內心的安定。
用清靜心看世間,世間即清靜,用解脫心看世間,心即解脫。
會調心的人就會生活,會生活的人才得大智慧,智慧高的人生活范圍大,因為他能包容,能夠令人安定,每個人都喜歡跟他在一起。
處理事務要多包容、忍耐,量大福大,量小阻礙多。
尊重別人,就能獲得別人的尊重,
不聽人我是非,聽人我是非即是是非人,不能成大事。
修行就是管自己,自己都管不了,還管得了誰?眾生就是我,我就是眾生。
認識自己,如果不認識自己的心,就無法安排人生,也許你可以安排你的事業,家庭,希望一切如意,可是你卻隨時要接受無常的安排。認清自己為認清世界的根本,要研究這世界不如先研究自己。
修行就是要:審查自己的心、規畫自己的心、企劃自己的心。
身體的健康與心理有關,能夠放下,不想煩惱的事,身心就能解脫。
佛法不是在廟里,而是在心里。
浪有高有低,海水依舊是海水,生活有苦有樂,心依舊是心。
其實塵在外,心在內,常拂之,心凈無塵;
塵在內,心在外,常剝之,無塵無心;
心中有塵,塵本是心,
何畏心中塵,無塵亦無心?正如慧能所說的仁者心動
佛家追求的是一種超脫
卻不是刻意的尋求
主旨在心
世間人,法無定法,然后知非法法也;
天下事,了猶未了,何妨以不了了之
菩提本無樹,明鏡亦非臺。本來無一物,何處惹塵埃?
佛家的學說往往浸透著深奧的人生哲學,從而引得無數人將此作為座右銘,因為一方面這是一種處世方式,另一方面也是人們幾千年的經驗結晶。在學哲學時,常把佛家學說定義為唯心主義,從這句詩中也可以看出,菩提本無樹,就是說,首先沒有物質的存在,所以又如何惹塵埃呢?
菩提真的無樹嗎?記得以前有一部電影,是歐美的,描述的是一個非洲叢林的原始部落,生產力低下,以獵物為生,彼此生活安逸,波瀾不驚。但是有一天,有一個人在海灘上揀到了一個易拉罐,把它帶到了部落,雖然是一個對于我們來說不值錢的物件,但在那里卻是件希罕物,可以說是珍寶。圍繞著這一物件,為了得到它,部落里展開了一場爭斗,在一場你爭我奪的,鉤心斗角的爭奪后,他們省悟了,最后將易拉罐重新扔入了無際的大海。部落又恢復了昔日的平靜。
人是從自然界演變而來,人類的本性就是永遠也不滿足,這種本性演發了無窮無盡的矛盾,也同時推動者人類社會的前進,在這種前進中,滿含著血腥與殘酷,在矛盾中,人們會選擇一種信仰,目的只是為了逃避現實。
菩提既是樹,明鏡就是臺,這些都是物質,皆是物,你可以閉眼不見,但都是客觀存在。本來無一物,只是主觀的逃避。
對于現實,我們會采取多種方式,當我們享受著生活的美好時,當我們在陽光下時,是不會去考慮菩提樹是否存在的問題的;或當我們在愛河中徜徉,陶醉于其中時,何曾想過明鏡?
只有當我們面臨著生活的壓力,面臨著現實的殘酷,當我們的愛被背叛,被蹂躪,在施展全身之力皆無果時,便會無奈的尋求心理的安慰。將煩惱拋之腦后,以重新煥發生活的斗志,或者,已喪失了斗志,僅尋求一種解脫。這也就是佛學這種理論賴以存在的基礎。
這種理論在今天看來,也許有其積極的作用,那便是引導人們理智對待人生,當有沖突時,回避或退讓或是好辦法。
然而,人終究是人,一種貪婪,健忘的生物,當生活,現實,愛情等等因素重新回歸美好時,便又會看到菩提樹,看到明鏡臺了,便又會去惹塵埃了。
Tutorial: The H.264 Scalable Video Codec (SVC)收藏
Codecs are used to compress video to reduce the bandwidth required to transport streams, or to reduce the storage space required to archive them. The price for this compression is increased computational requirements: The higher the compression ratio, the more computational power is required.
Fixing the tradeoff between bandwidth and computational requirements has the effect of defining both the minimum channel bandwidth required to carry the encoded stream and the minimum specification of the decoding device. In traditional video systems such as broadcast television, the minimum specification of a decoder (in this case a set-top box) is readily defined.
Today, however, video is used in increasingly diverse applications with a correspondingly diverse set of client devices—from computers viewing Internet video to portable digital assistants (PDAs) and even the humble cell phone. The video streams for these devices are necessarily different.
To be made more compatible with a specific viewing device and channel bandwidth, the video stream must be encoded many times with different settings. Each combination of settings must yield a stream that targets the bandwidth of the channel carrying the stream to the consumer as well as the decode capability of the viewing device. If the original uncompressed stream is unavailable, the encoded stream must first be decoded and then re-encoded with the new settings. This quickly becomes prohibitively expensive.
In an ideal scenario, the video would be encoded only once with a high efficiency codec. The resulting stream would, when decoded, yield the full resolution video. Furthermore, in this ideal scenario, if a lower resolution or bandwidth stream was needed to reach further into the network to target a lower performance device, a small portion of the encoded stream would be sent without any additional processing. This smaller stream would be easier to decode and yield lower resolution video. In this way, the encoded video stream could adapt itself to both the bandwidth of the channel it was required to travel through and to the capabilities of the target device. These are exactly the qualities of a scalable video codec.
H.264 SVC
The Scalable Video Codec extension to the H.264 standard (H.264 SVC) is designed to deliver the benefits described in the preceding ideal scenario. It is based on the H.264 Advanced Video Codec standard (H.264 AVC) and heavily leverages the tools and concepts of the original codec. The encoded stream it generates, however, is scalable: temporally, spatially, and in terms of video quality. That is, it can yield decoded video at different frame rates, resolutions, or quality levels.
The SVC extension introduces a notion not present in the original H.264 AVC codec−that of layers within the encoded stream. A base layer encodes the lowest temporal, spatial, and quality representation of the video stream. Enhancement layers encode additional information that, using the base layer as a starting point, can be used to reconstruct higher quality, resolution, or temporal versions of the video during the decode process. By decoding the base layer and only the subsequent enhancement layers required, a decoder can produce a video stream with certain desired characteristics. Figure 1 shows the layered structure of an H.264 SVC stream. During the encode process, care is taken to encode a particular layer using reference only to lower level layers. In this way, the encoded stream can be truncated at any arbitrary point and still remain a valid, decodable stream.

(Click to enlarge)
Figure 1. The H.264 SVC Layered Structure.
This layered approach allows the generation of an encoded stream that can be truncated to limit the bandwidth consumed or the decode computational requirements. The truncation process consists simply of extracting the required layers from the encoded video stream with no additional processing on the stream itself. The process can even be performed "in the network". That is, as the video stream transitions from a high bandwidth to a lower bandwidth network (for example, from an Ethernet network to a handheld through a WiFi link), it could be parsed to size the stream for the available bandwidth. In the above example, the stream could be sized for the bandwidth of the wireless link and the decode capabilities of the handheld decoder. Figure 2 shows such an example as a PC forwards a low bandwidth instance of a stream to a mobile device.

Figure 2. Parsing Levels to Reduce Bandwidth and Resolution.
H.264 SVC Under the Hood
To achieve temporal scalability, H.264 SVC links its reference and predicted frames somewhat differently than conventional H.264 AVC encoders. Instead of the traditional Intra-frame (I frame), Bidirectional (B frame) and Predicted (P frame) relationship shown in Figure 3, SVC uses a hierarchical prediction structure.

(Click to enlarge)
Figure 3. Traditional I, P, and B Frame Relationship.
The hierarchical structure defines the temporal layering of the final stream. Figure 4 illustrates a potential hierarchical structure. In this particular example, frames are only predicted from frames that occur earlier in time. This ensures that the structure exhibits not only temporal scalability but also low latency.

(Click to enlarge)
Figure 4. Hierarchical Predicted Frames in SVC.
This scheme has four nested temporal layers: T0 (the base layer), T1, T2, and T3. Frames constituting the T1 and T2 layers are only predicted from frames in the T0 layer. Frames in the T3 layer are only predicted from frames in the T1 or T2 layers.
To play the encoded stream at 3.75 frames per second (fps), only the frames that constitute T0 need be decoded. All other frames can be discarded. To play the stream at 7.5 fps, the layers making up T0 and T1 are decoded. Frames in layers T2 and T3 can be discarded. Similarly, if frames that constitute T0, T1 and T2 are decoded, the resulting stream will play at 15 fps. If all frames are decoded, the full 30 fps stream is recovered.
By contrast, in H.264 AVC (for Baseline Profile where only unidirectional predicted frames are used), all the frames would need to be decoded irrespective of the desired display rate. To transit to a low bandwidth network, the entire stream would need to be decoded, the unwanted frames discarded, and then re-encoded.
Spatial scalability in H.264 SVC follows a similar principle. In this case, lower resolution frames are encoded as the base layer. Decoded and up-sampled base layer frames are used in the prediction of higher-order layers. Additional information required to reconstitute the detail of the original scene is encoded as a self-contained enhancement layer. In some cases, reusing motion information can further increase encoding efficiency.
Simulcast vs. SVC
There is an overhead associated with the scalability inherent in H.264 SVC. As can be seen in Figure 3, the distance between reference and predicted frames can be longer in time (from T0 to T1 for example) than with the conventional frame structure. In scenes with high motion, this can lead to slightly less efficient compression. There is also an overhead associated with the management of the layered structure in the stream.
Overall, an SVC stream containing three layers of temporal scalability and three layers of spatial scalability might be twenty percent larger than an equivalent H.264 AVC stream of full resolution and full frame rate video with no scalability. If scalability is to be emulated with the H.264 AVC codec, multiple encode streams are required, resulting in a dramatically higher bandwidth requirement or expensive decoding and re-encoding throughout the network.
Additional SVC Benefits
Error Resilience:
Error resilience is traditionally achieved by adding additional information to the stream so errors can be detected and corrected. SVC's layered approach means that a higher level of error detection and correction can be performed on the smaller base layer without adding significant overhead. Applying the same degree of error detection and correction to an AVC stream would require that the entire stream be protected, resulting in a much larger stream. If errors are detected in the SVC stream, the resolution and frame rate can be progressively degraded until, if needed, only the highly protected base layer is used. In this way, degradation under noisy conditions is much more graceful than with H.264 AVC.
Storage Management:
Since an SVC stream or file remains decodable even when truncated, SVC can be employed both during transmission and after the file is stored. Parsing files stored to disk and removing enhancement layers allows file size to be reduced without additional processing on the video stream stored within the file. This would not be possible with an AVC file which necessitates an "all or nothing" approach to disk management.
Content Management:
The SVC stream or file inherently contains lower resolution and frame rate streams. These streams can be used to accelerate the application of video analytics or for cataloging algorithms. The temporal scalability also makes the stream easier to search in fast forward or reverse.
An Application Case Study
A typical application for H.264 SVC is a surveillance system. (Stretch offers market-leading solutions in this area; see its web site for details.) Consider the case where an IP camera is sending a video feed to a control room where it is stored, and basic motion detection analytics are run on the stream. The video feed is viewed at the camera's maximum resolution (1280 x 720) on the control room monitors, and is stored in D1 (720 x 480) resolution to conserve disk space. A first-response team also has access to the stream in the field on mobile terminals within the response vehicle. The resolution of those displays is CIF (352 x 240) and the stream is served at 7 fps.
In an implementation using H.264 AVC, the first likely constraint would be that the camera serves multiple streams. In this example, one at 1280x720 resolution and one at 720 x 480 resolution. This places additional cost within the camera, but allows one stream to be directly recorded at the control room while another is decoded and displayed. Without this feature, an expensive decode, resize, and re-encode step would be needed. The D1 stream is also decoded and resized to CIF resolution to feed the video analytics being run on the stream. The CIF resolution video is temporally decimated to achieve 7 frames per second and re-encoded so that it can be made available to the first-response vehicle over a wireless link. Figure 5 shows a potential implementation of the system using H.264 AVC.

Figure 5. H.264 AVC Video Surveillance Application.
Using an H.264 SVC codec, the multi-stream requirement placed on the camera can be relaxed, reducing complexity and network bandwidth between the camera and control room. The full 1280 x 720 stream can now be stored on the network video recorder (NVR) with the knowledge that it can be easily parsed to create a D1 (or CIF) stream to free up disk space after a specified period. A CIF stream can be served directly from the NVR for analytics work, and a second stream at a reduced frame rate can be made available to the first-response vehicle. Figure 6 shows a potential H.264 SVC implementation.

Figure 6. H.264 SVC Video Surveillance Application.
At no point is there a need to operate on the video stream itself—operating on the stored file suffices. The advantages are clear:
- Reduced network bandwidth
- Flexible storage management
- Removal of expensive decode and re-encode stages
- High definition video available on the NVR for archive if needed
Conclusion
Scalable video codecs have been in development for many years. The broadcast industry, strictly controlled by well-established standards, has been slow to adopt this technology. Advances in processor, sensor, and display technology are fuelling an explosion in video adoption. The Internet and IP technologies are seamlessly serving video to an ever more diverse and remote community of display devices. Scalable video codecs such as H.264 SVC satisfy many of the demands of these systems, and they are poised to become a catalyst in wide the spread adoption of video as a communication medium.
About the author
Mark Oliver is the Director of Product Marketing at Stretch. A native of the UK, Oliver gained a degree in Electrical and Electronic Engineering from the University of Leeds. During a ten year tenure with Hewlett Packard, Oliver managed Engineering and Manufacturing functions in HP Divisions both in Europe and the US before heading up Product Marketing and Applications activities at a series of video related startups. Prior to joining Stretch, Oliver managed Marketing for Video and Imaging within the DSP Division of Xilinx.
Related Articles:
摘要: The Scalable Video Coding Amendment of the H.264/AVC Standardfunction StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection()... 閱讀全文
以下轉載于“ Jenny@博客大巴”
第一:看輕自己,重視別人;
曾經有一度,我以為自己相當重要,不僅拼搏著自己的理想,而且承載著別人的未來。我活得很辛苦很緊張,因為生活在他人的世界里。我在意別人的所思所想,我在乎別人的所作所為,周圍的微小變化都能夠影響到我內心的安寧。我開始焦慮不安,找很多朋友談話。我知道她們都是對的,我明白她們在說什么,只是我無法說服自己。終于有一天,我頓悟了,所有這一切困惑,是因為我把自己太看重了。
我喜歡看月亮,從新月開始,到上弦月,到圓月,再到下弦月,最后到殘月,周而復始,愈發感覺到天地的廣袤和自我的渺小。當我真的開始看輕自己的時候,我進入一個全新的世界,周圍每個人都能給我驚喜,無論是我崇拜之人,還是我泛泛之交。我發現了他/她們的優點,我理解了他/她們的苦衷,我開始珍惜和重視身邊的每個人。我越來越快樂,越來越豁達,學會應該怎樣和別人相處,讓自己和他人都更舒服一點。
第二:時間是自己的,機會也是自己的;
不知什么時候我開始意識到日月如梭。眼見耳聞著所謂“英雄末路,美人遲暮”的故事在不斷上演,唯有唏噓不已,自我不斷警醒。時間面前人人平等,關鍵在于如何最佳利用,實現最大價值化。人生本原本就沒有意義,只是你如何描繪它。
年少無知的時候,我以為應該好好盡情享受青春的感覺,從來沒有想到時間只擁有一次,20歲永遠不會再來。現在淺薄如我,才發現“書到用時方恨少”。我還有很多書需要看,很多技能需要學習,很多專業知識需要鞏固,很多朋友需要關心……不過幸運的是,任何時候都為時不晚,只要隨時啟程,就有新鮮的發現。機會也永遠垂青有準備的人。
第三:平衡就健康。
我向來都知足常樂,極具阿Q精神。 每個人生活都不容易,也都有各自的精彩。活得簡單一些,難得糊涂一點,會讓自己的內心平和許多。
對于我,工作,家庭,生活,朋友,一個都不能少。我熱愛工作,因為我在創造多重價值,個人資本、公司利益和社會責任。多說一句價值觀的問題,沒有人能給你判定價值幾何,只有你自己。你的付出和回報在正常狀況下是成正比的,不要過多要求別人,應該更多省視自己,自己做得夠好了嗎?!家庭是我珍視的,也永遠是最安全的避風港,唯有親人對自己無怨無悔。我向來要求生活品質,不求最貴的,也不求最好的,而是最適合自己的。朋友是我最大的財富,我全心全意地去維護這份感情,謝謝你們給我的一切,甘為樹洞,是我莫大的榮幸!
一位心理醫生和一位30歲女白領的對話,她想糾正自己最近幾個月里總是拖延工作的惡習。
“你喜歡吃蛋糕嗎?”“喜歡。” “你喜歡先吃蛋糕,還是蛋糕上的奶油?” “當然是奶油啦!我通常先吃完奶油,然后才吃蛋糕的。”
醫生從吃蛋糕的習慣出發,重新討論她對待工作的態度。正如醫生預料的,在上班第一個鐘頭,她總是把容易和喜歡做的工作先完成,而在剩下6個鐘頭里,她就盡量規避棘手的差事。
醫生建議她從現在開始,在上班第一個鐘頭,要先去解決那些麻煩的差事,在剩下的時間里,其他工作會變得相對輕松。醫生解釋其中的道理說:按1天工作7個鐘頭計算,1個鐘頭的痛苦與6個鐘頭的幸福,顯然要比1個鐘頭的幸福,加上6個鐘頭的痛苦劃算。
她完全同意這樣的計算方法,而且堅決照此執行,不久就徹底克服了拖延工作的毛病。
這就是推遲滿足感,它意味著你不能貪圖暫時的安逸,你得重新設置人生快樂與痛苦的次序:首先,面對問題并感受痛苦;然后,解決問題并享受更大的快樂,這是惟一可行的生活方式。
[轉載]習慣的力量:35歲之前如何可以做得很成功
習慣的力量是驚人的。習慣能載著你走向成功,也能馱著你滑向失敗。如何選擇,完全取決于你自己。
1、習慣的力量:35歲以前養成好習慣
你想成功嗎?那就及早培養有利于成功的好習慣。
習慣的力量是驚人的,35歲以前養成的習慣決定著你是否成功。
有這樣一個寓言故事:
一位沒有繼承人的富豪死后將自己的一大筆遺產贈送給遠房的一位親戚,這位親戚是一個常年靠乞討為生的乞丐。這名接受遺產的乞丐立即身價一變,成了百萬富翁。新聞記者便來采訪這名幸運的乞丐:“你繼承了遺產之后,你想做的第一件事是什么?”乞丐回答說:“我要買一只好一點的碗和一根結實的木棍,這樣我以后出去討飯時方便一些。”
可見,習慣對我們有著絕大的影響,因為它是一貫的,在不知不覺中,經年累月地影響著我們的行為,影響著我們的效率,左右著我們的成敗。
一個人一天的行為中,大約只有5%是屬于非習慣性的,而剩下的95%的行為都是習慣性的。即便是打破常規的創新,最終可以演變成為習慣性的創新。
根據行為心理學的研究結果:3周以上的重復會形成習慣;3個月以上的重復會形成穩定的習慣,即同一個動作,重復3周就會變成習慣性動作,形成穩定的習慣。
亞里士多德說:“人的行為總是一再重復。因此,卓越不是單一的舉動,而是習慣。”
“人的行為總是一再重復。因此,卓越不是單一的舉動,而是習慣。”所以,在實現成功的過程中,除了要不斷激發自己的成功欲望,要有信心、有熱情、有意志、有毅力等之外,還應該搭上習慣這一成功的快車,實現自己的目標。
有個動物學家做了一個實驗:他將一群跳蚤放入實驗用的大量杯里,上面蓋上一片透明的玻璃。跳蚤習性愛跳,于是很多跳蚤都撞上了蓋上的玻璃,不斷地發叮叮冬冬的聲音。過了一陣子,動物學家將玻璃片拿開,發現竟然所有跳蚤依然在跳,只是都已經將跳的高度保持在接近玻璃即止,以避免撞到頭。結果竟然沒有一只跳蚤能跳出來——依它們的能力不是跳不出來,只是它們已經適應了環境。
后來,那位動物學家就在量杯下放了一個酒精燈并且點燃了火。不到五分鐘,量杯燒熱了,所有跳蚤自然發揮求生的本能,每只跳蚤再也不管頭是否會撞痛(因為它們以為還有玻璃罩),全部都跳出量杯以外。這個試驗證明,跳蚤會為了適應環境,不愿改變習性,寧愿降低才能、封閉潛能去適應。
我想,人類之于環境也是如此。人類在適應外界大環境中,又創造出適合于自己的小環境,然后用習慣把自己困在自己所創造的環境中。所以,習慣決定著你的活動空間的大小,也決定著你的成敗。養成好習慣對于你的成功非常重要。
心理學巨匠威廉·詹姆士說:“播下一個行動,收獲一種習慣;播下一種習慣,收獲一種性格;播下一種性格,收獲一種命運。”
2、35歲以前成功必備的9大習慣
好習慣會使成功不期而至。
好習慣會使成功不期而至。我認為下面9個好習慣是成功必備的:
(1)積極思維的好習慣
有位秀才第三次進京趕考,住在一個經常住的店里。考試前兩天他做了三個夢:第一個夢是夢到自己在墻上種白菜,第二個夢是下雨天,他戴了斗笠還打著傘,第三個夢是夢到跟心愛的表妹脫光了衣服躺在一起,但是背靠著背。臨考之際做此夢,似乎有些深意,秀才第二天去找算命的解夢。算命的一聽,連拍大腿說:“你還是回家吧。你想想,高墻上種菜不是白費勁嗎?戴斗笠打雨傘不是多此一舉嗎?跟表妹脫光了衣服躺在一張床上,卻背靠背,不是沒戲嗎?”秀才一聽,心灰意冷,回店收拾包裹準備回家。
店老板非常奇怪,問:“不是明天才考試嗎?今天怎么就打道回府了?”秀才如此這般說了一番,店老板樂了:“唉,我也會解夢的。我倒覺得,你這次一定能考中。你想想,墻上種菜不是高種嗎?戴斗笠打傘不是雙保險嗎?跟你表妹脫光了背靠背躺在床上,不是說明你翻身的時候就要到了嗎?”秀才一聽,更有道理,于是精神振奮地參加考試,居然中了個探花。
可見,事物本身并不影響人,人們只受到自己對事物看法的影響,人必須改變被動的思維習慣,養成積極的思維習慣。
怎樣才算養成了積極思維的習慣呢?當你在實現目標的過程中,面對具體的工作和任務時,你的大腦里去掉了“不可能”三個字,而代之以“我怎樣才能”時,可以說你就養成了積極思維的習慣了。
(2)高效工作的好習慣
一個人成功的欲望再強烈,也會被不利于成功的習慣所撕碎,而溶入平庸的日常生活中。所以說,思想決定行為,行為形成習慣,習慣決定性格,性格決定命運。你要想成功,就一定要養成高效率的工作習慣。
確定你的工作習慣是否有效率,是否有利于成功,我覺得可以用這個標準來檢驗:即在檢省自己工作的時候,你是否為未完成工作而感到憂慮,即有焦灼感。如果你應該做的事情而沒有做,或做而未做完,并經常為此而感到焦灼,那就證明你需要改變工作習慣,找到并養成一種高效率的工作習慣。
高效工作從辦公室開始:
1)了解你每天的精力充沛期。通常人們在早晨9點左右工作效率最高,可以把最困難的工作放到這時來完成。
2)每天集中一、兩個小時來處理手頭緊急的工作,不接電話、不開會、不受打擾。這樣可以事半功倍。
3)立刻回復重要的郵件,將不重要的丟棄。若任它們積累成堆,反而更費時間。
4)做個任務清單,將所有的項目和約定記在效率手冊中。手頭一定要帶著效率手冊以幫助自己按計劃行事。一個人一天的行為中,大約只有5%是屬于非習慣性的,而剩下的95%的行為都是習慣性的。
5)學會高效地利用零碎時間,用來讀點東西或是構思一個文件,不要發呆或做白日夢。
6)減少回電話的時間。如果你需要傳遞的只是一個信息,不妨發個手機短信。
7)對可能打來的電話做到心中有數,這樣在你接到所期待的電話后便可迅速找到所需要的各種材料,不必當時亂翻亂找。
8)學習上網高效搜尋的技能,以節省上網查詢的時間。把你經常要瀏覽的網站收集起來以便隨時找到。
9)用國際互聯網簡化商業旅行的安排。多數飯店和航線可以網上查詢和預訂。
10)只要情況允許就可委派別人分擔工作。事必躬親會使自己疲憊不堪,而且永遠也做不完。不妨請同事幫忙,或讓助手更努力地投入。
11)做靈活的日程安排,當你需要時便可以忙中偷閑。例如,在中午加班,然后早一小時離開辦公室去健身,或是每天工作10個小時,然后用星期五來赴約會、看醫生。
12)在離開辦公室之前開列次日工作的清單,這樣第二天早晨一來便可以全力以赴。
凡事有計劃
計劃習慣,就等于計劃成功。
凡事制定計劃有個名叫約翰·戈達德的美國人,當他15歲的時候,就把自己一生要做的事情列了一份清單,被稱做“生命清單”。在這份排列有序的清單中,他給自己所要攻克的127個具體目標。比如,探索尼羅河、攀登喜馬拉雅山、讀完莎士比亞的著作、寫一本書等。在44年后,他以超人的毅力和非凡的勇氣,在與命運的艱苦抗爭中,終于按計劃,一步一步地實現了106個目標,成為一名卓有成就的電影制片人、作家和演說家。
中國有句老話:“吃不窮,喝不窮,沒有計劃就受窮。”盡量按照自己的目標,有計劃地做事,這樣可以提高工作效率,快速實現目標。
(3)養成鍛煉身體的好習慣
增強保健意識
計劃習慣,就等于計劃成功。如果你想成就一番事業,你就必須有一個健康的身體;要想身體健康,首先要有保健意識。
我認識一個大學教師,身體一直很健康。早些時候,我們經常在一起玩。在談及各人身體狀況時,他說腎部偶爾有輕微不適的感覺。我們曾勸他去醫院檢查一下,但他自恃身體健康,不以為意。直至后來感覺比較疼痛,其愛人才強迫他去檢查。診斷結果是晚期腎癌。雖經手術化療的等治療措施,但終未能保住生命,死時才39歲。此前,他曾因學校分房、評職稱不如意,心情一直抑郁,他的病和情緒有關,但如果他保健意識強,及早去檢查,完全有可以進行預防,消患于未萌。保健意識差,讓他付出了生命的代價。
如何落實保健意識呢?一是要有生命第一、健康第一的意識,有了這種意識,你就會善待自己的身體、自己的心理,而不會隨意糟踏自己的身體。二是要注意掌握一些相關的知識。三是要使自己有一個對身體應變機制:定期去醫院做身體檢查;身體覺得有不適的地方,應及早去醫院檢查;在有條件的情況下,可以請一個保健醫生,給自己的健康提出忠告。
有計劃地鍛煉身體
鍛煉身體的重要性已經越來越多地為人們所接受,但我感覺很多人只停留在重視的意識階段,而缺乏相應的行動。我認為鍛煉既要針對特定工作姿勢所能引發的相應疾病有目的地進行,以防止和治療相應的疾病,更要把鍛煉當作一種樂趣,養成鍛煉的習慣。
因為工作需要,我經常與客戶打交道,并因處理突發事情四處奔忙,這在一定程度起到了鍛煉身體的作用,同時,我還每周堅持游泳一到兩次,以保證有足夠的精力去做工作,去享受生活。
身體鍛煉,就像努力爭取成功一樣,貴在堅持。
除上述兩點以,注意飲食結構,合理膳食,以及注意養成好的衛生習慣等,都是養成健康習慣的組成部分。
總之,健康是“革命”的本錢,是成功的保證。健康成就自己。
(4)不斷學習的好習慣
“萬般皆下品,唯有讀書高”的年代已經過去了,但是養成讀書的好習慣則永遠不會過時。
哈利·杜魯門是美國歷史上著名的總統。他沒有讀過大學,曾經營農場,后來經營一間布店,經歷過多次失敗,當他最終擔任政府職務時,已年過五旬。但他有一個好習慣,就是不斷地閱讀。多年的閱讀,使杜魯門的知識非常淵博。他一卷一卷地讀了《大不列顛百科全書》以及所有查理斯·狄更斯和維克多·雨果的小說。此外,他還讀過威廉·莎士比亞的所有戲劇和十四行詩等。
杜魯門的廣泛閱讀和由此得到的豐富知識,使他能帶領美國順利度過第二次世界大戰的結束時期,并使這個國家很快進入戰后繁榮。他懂得讀書是成為一流領導人的基礎。讀書還使他在面對各種有爭議的、棘手的問題時,能迅速做出正確的決定。例如,在20世紀50年代他頂住壓力把人們敬愛的戰爭英雄道格拉斯·麥克阿瑟將軍解職。
他的信條是:“不是所有的讀書人都是一名領袖,然而每一位領袖必須是讀書人。”
美國前任總統克林頓說:在19世紀獲得一小塊土地,就是起家的本錢;而21世紀,人們最指望得到的贈品,再也不是土地,而聯邦政府的獎學金。因為他們知道,掌握知識就是掌握了一把開啟未來大門的鑰匙。”
每一個成功者都是有著良好閱讀習慣的人。世界500家大企業的CEO至少每個星期要翻閱大概30份雜志或圖書資訊,一個月可以翻閱100多本雜志,一年要翻閱1000本以上。
世界500家大企業的CEO至少每個星期要翻閱大概30份雜志或圖書資訊,一個月可以翻閱100多本雜志,一年要翻閱1000本以上。如果你每天讀15分鐘,你就有可能在一個月之內讀完一本書。一年你就至少讀過12本書了,10年之后,你會讀過總共120本書!想想看,每天只需要抽出15分鐘時間,你就可以輕易地讀完120本書,它可以幫助你在生活的各方面變得更加富有。如果你每天花雙倍的時間,也就是半個小時的話,一年就能讀25本書——10年就是250本!
我覺得,每一個想在35歲以前成功的人,每個月至少要讀一本書,兩本雜志。
(5)謙虛的好習慣
一個人沒有理由不謙虛。相對于人類的知識來講,任何博學者都只能是不及格。
著名科學家法拉第晚年,國家準備授予他爵位,以表彰他在物理、化學方面的杰出貢獻,但被他拒絕了。法拉第退休之后,仍然常去實驗室做一些雜事。一天,一位年輕人來實驗室做實驗。他對正在掃地的法拉第說道:“干這活,他們給你的錢一定不少吧?”老人笑笑,說道:“再多一點,我也用得著呀。”“那你叫什么名字?老頭?”“邁克爾·法拉第。”老人淡淡地回答道。年輕人驚呼起來:“哦,天哪!您就是偉大的法拉第先生!”“不”,法拉第糾正說,“我是平凡的法拉第。”
謙虛不僅是一種美德,更是是一種人生的智慧,是一種通過貶低自己來保護自己的計謀。
(6)自制的好習慣
任何一個成功者都有著非凡的自制力。
三國時期,蜀相諸葛亮親自率領蜀國大軍北伐曹魏,魏國大將司馬懿采取了閉城休戰、不予理睬的態度對付諸葛亮。他認為,蜀軍遠道來襲,后援補給必定不足,只要拖延時日,消耗蜀軍的實力,一定能抓住良機,戰勝敵人。
諸葛亮深知司馬懿沉默戰術的利害,幾次派兵到城下罵陣,企圖激怒魏兵,引誘司馬懿出城決戰,但司馬懿一直按兵不動。諸葛亮于是用激將法,派人給司馬懿送來一件女人衣裳,并修書一封說:“仲達不敢出戰,跟婦女有什么兩樣。你若是個知恥的男兒,就出來和蜀軍交戰,若不然,你就穿上這件女人的衣服。”
“士可殺不可辱。”這封充滿侮辱輕視的信,雖然激怒了司馬懿,但并沒使老謀深算的司馬懿改變主意,他強壓怒火穩住軍心,耐心等待。
相持了數月,諸葛亮不幸病逝軍中,蜀軍群龍無首,悄悄退兵,司馬懿不戰而勝。
抑制不住情緒的人,往往傷人又傷己如果司馬懿不能忍耐一時之氣,出城應戰,那么或許歷史將會重寫。
現代社會,人們面臨的誘惑越來越多,如果人們缺乏自制力,那么就會被誘惑牽著鼻子走,偏離成功的軌道。
(7)幽默的好習慣
有人說,男人需要幽默,就像女人需要一個漂亮的臉蛋一樣重要。
男人需要幽默,就像女人需要一個漂亮的臉蛋一樣重要。美國第16任總統林肯長相丑陋,但他從不忌諱這一點,相反,他常常詼諧地拿自己的長相開玩笑。在競選總統時,他的對手攻擊他兩面三刀,搞陰謀詭計。林肯聽了指著自己的臉說:“讓公眾來評判吧。如果我還有另一張臉的話,我會用現在這一張嗎?”還有一次,一個反對林肯的議員走到林肯跟前挖苦地問:“聽說總統您是一位成功的自我設計者?”“不錯,先生。”林肯點點頭說,“不過我不明白,一個成功的設計者,怎么會把自己設計成這副模樣?”林肯就是這種幽默的方法,多次成功地化解了可能出現的尷尬和難堪場面。
沒有幽默的男人不一定就差,但懂得幽默的男人一定是一個優秀的人,懂得幽默的女人更是珍稀動物。
(8)微笑的好習慣
微笑是大度、從容的表現,也是交往的通行證。
舉世聞名的希爾頓大酒店,其創建人希爾頓在創業之初,經過多年探索,最終發現了一條簡單、易行、不花本錢的經營秘訣——微笑。從此,他要求所有員工:無論飯店本身遭遇到什么困難,希爾頓飯店服務員臉上的微笑永遠是屬于顧客的陽光。這束“陽光”最終使希爾頓飯店贏得了全世界一致好評。
在歐美發達國家,人們見面都要點頭微笑,使人們相互之間感到很溫暖。而在中國,如果你在大街上向一個女士微笑,那么你可能被說成“有病”。向西方人學習,讓我們致以相互的微笑吧。
從古至今,敬業是所有成功人士最重要的品質之一。
(9)敬業、樂業的好習慣
敬業是對渴望成功的人對待工作的基本要求,一個不敬業的人很難在他所從事的工作中做出成績。
美國標準石油公司有一個叫阿基勃特的小職員,開始并沒有引起人們的特別注意。他的敬業精神特別強,處處注意維護和宣傳企業的聲譽。在遠行住旅館時總不忘記在自己簽名的下方寫上“每桶四美元的標準石油”字樣,在給親友寫信時,甚至在打收條時也不例外,簽名后總不忘記寫那幾個字。為此,同事們都叫他“每桶四美元”。這事被公司的董事長洛克菲勒知道了,他邀請阿基勃特共進晚餐,并號召公司職員向他學習。后來,阿基勃特成為標準石油公司的第二任董事長。
3、35歲以前成功必須戒除的9大惡習
壞習慣使成功寸步難行。
與建立良好習慣相應的,是克服不良習慣。不破不立,不改掉不良習慣,好習慣是難以建立起來的。
古希臘的佛里幾亞國王葛第士以非常奇妙的方法,在戰車的軛打了一串結。他預言:誰能打開這個結,就可以征服亞洲。一直到公元前334年還沒有一個人能將繩結打開。這時。亞歷山大率軍入侵小亞細亞,他來到葛第士繩結前,不加考慮便拔劍砍斷了它。后來,他果然一舉占領了比希臘大50倍的波斯帝國。
一個孩子在山里割草,不小心被毒蛇咬傷了腳。孩子疼痛難忍,而醫院在遠處的小鎮上。孩子毫不猶豫地用鐮刀割斷受傷的腳趾,然后忍著巨痛艱難地走到醫院。雖然缺少了一個腳趾,但這個孩子以短暫的疼痛保住了自己的生命。
改掉壞習慣,就應該有亞歷山大的氣概,就應有那個小孩的果斷和勇敢,徹底改掉壞習慣,讓好習慣引領自己走向成功。
以下這9大惡習是你必須戒除的:
1)經常性遲到。你上班或開會經常遲到嗎?遲到是造成使老板和同事反感的種子,它傳達出的信息:你是一個只考慮自己、缺乏合作精神的人。
2)拖延。雖然你最終完成了工作,但拖后腿使你顯得不勝任。為什么會產生延誤呢?如果是因為缺少興趣,你就應該考慮一下你的擇業;如果是因為過度追求盡善盡美,這毫無疑問會增多你在工作中的延誤。社會心理學專家說:很多愛拖延的人都很害怕冒險和出錯,對失敗的恐懼使他們無從下手。
3)怨天尤人。這幾乎是失敗者共同的標簽。一個想要成功的人在遇到挫折時,應該冷靜地對待自己所面臨的問題,分析失敗的原因,進而找到解決問題的突破口。
4)一味取悅他人。一個真正稱職的員工應該對本職工作內存在的問題向上級說明并提出相應的解決辦法,而不應該只是附和上級的決定。對于管理者,應該有嚴明的獎懲方式,而不應該做“好好先生”,這樣做雖然暫時取悅了少數人,卻會失去大多數人的支持。
5)傳播流言。每個人都可能會被別人評論,也會去評論他人,但如果津津樂道的是關于某人的流言蜚語,這種議論最好停止。世上沒有不透風的墻,你今天傳播的流言,早晚會被當事人知道,又何必去搬石頭砸自己的腳?所以,流言止于智者。
6)對他人求全責備、尖酸刻薄。每個人在工作中都可能有失誤。當工作中出現問題時,應該協助去解決,而不應該一味求全責備。特別是在自己無法做到的情況下,讓自己的下屬或別人去達到這些要求,很容易使人產生反感。長此以往,這種人在公司沒有任何威信而言。
7)出爾反爾。已經確定下來的事情,卻經常做變更,就會讓你的下屬或協助員工無從下手。你做出的承諾,如果無法兌現,會在大家面前失去信用。這樣的人,難以擔當重任。
8)傲慢無禮。這樣做并不能顯得你高人一頭,相反會引起別人的反感。因為,任何人都不會容忍別人瞧不起自己。傲慢無禮的人難以交到好的朋友。人脈就是財脈,年輕時養成這種習慣的人,相信你很難取得成功。
9)隨大流。人們可以隨大流,但不可以無主見。如果你習慣性地隨大流,那你就有可能形成思維定勢,沒有自己的主見,或者既便有,也不敢表達自己的主見,而沒有主見的人是不會成功的。
|