|
正则表达式规则
|
|
|
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)随大流。人们可以随大流,但不可以无主见。如果你习惯性地随大流,那你就有可能形成思维定势,没有自己的主见,或者既便有,也不敢表达自己的主见,而没有主见的人是不会成功的。
|