Loading

《精通正则表达式》笔记

偷懒~~

工具:RegexBuddy

Regex来历:regular expression的简写

[-./]:这个东西以前经常看到,因为从来没学过正则,所以一直误解里头的‘-’。其实这个字符在[]中第一个出现的时候代表的是普通字符,没有别的意思,最后的’/’也是。

|和()的渊源:’|’是个很有意思的东西,它跟分组符号配合就像变魔法一样,可以很容易写出精简的正则。后者据说就是为了限制前者的。

?+*{min,max}:看看就知道啥意思,如果你学过计算机。

^:曾经摸索写的时候我就想,咋没取反的符号类,我恨你~

flavor:流派,跟正则无关,学习下英文。

budding regexers:巧妙的正则。

$1,2,3…:存储的规则是看分组的第一个括号出现的顺序,如果不想存储可以使用(?:)。

(?=)和(?<=):环视(lookahead),就是循环出现,前者是右边出现,后者是左边出现,且环视是不会占据字符的因为它只代表位置。

(?!)和(?<!):跟上面取反的。

插句话,这个书的作者脑子有k,perl来perl去,我可不关心它好不好。

正则起源:居然起源于两个神经学家,大自然真神奇~

字符串中的\\:\w\t等在字符串中要小心,\\代表\

unicode:C#支持,haha

简单字符组减法:[[a-z]-[aeiou]]

组的声明:默认按照左括号(出现的次序,也可以命名<name>例:(?<name>)(?'name’)

\w、\d、\s:处理所有合适的Unicode字符,可以通过启用RegexOptions.ECMAScript来限制在ascii

RegexOptions.ExplicitCapture:取消分组

反向取组:\k<name>或\k’name’

relpacement字符串中:用${name}

(?<DEPTH>)\(?<-DEPTH>):表示深度的,如果前面啥出现就XXXX。前者是+1后者是-1。

(?(DEPTH)):判断是否符合深度

posted @ 2009-09-23 20:32  today4king  阅读(256)  评论(0编辑  收藏  举报