一、CSS书写规范:
1、文字:font: font-style font-variant font-weight font-size/line-height font-family;
2、边框:border:border-width border-style border-color;
3、背景:background:background-color background-image background-repeat background-attachment background-postion
4、list-style:list-style-type list-style-postion list-style-image;
5、outline:outline-color outline-style outline-width;
6、效率规则:1)、显示样式:display/postion/float/clear
2)、自身样式:width/height/margin/padding/border/background
3)、内容样式:line-height/text-align/font系列(font-size/font-weight)/color/text-decoration/vitical-align
7、链接 a:link -> a:visited ->a:hover ->a:active (LVHA爱恨规则)
二、正则表达式:
1、. 匹配除换行之外的任意字符 eg: /bhi/b.*/blucy/b
/d 匹配一位数字 eg: 0/d{2}-/d{8}
/s 匹配任意空白符(空格、制表符Tab、换行符、中文全角空格等)
/w 匹配字符或者数字或下划线或汉字等
+ 匹配1次或多次。
* 重复任意次(可能是0)
/b匹配单词的开始和结束
^ 匹配字符串的开始
$ 匹配字符串的结束 eg: ^/d{5,12}$ (QQ号为5到12位的)
{n} 重复n次
{n,} 重复n次或多次
{n, m} 重复n次到m次
? 重复0次或1次
[0-9] 匹配0到9的数字
| 分隔符
/W 匹配非字母,数字,下划线或汉字等
/S 匹配非空白符的
/D 匹配非数字的
/B 匹配匹配单词的非开始和结束的位置
[^x] 匹配除x以外的字符
[^aeiou] 匹配除aeiou这几个字母之外的任意字符 eg: <a[^>]+> 匹配以尖括号括起来的以a开头的字符串。
(exp) 匹配exp并捕获文本到自动命名的组里 eg: /b(/w+)/b/s+/1/b 匹配重复的单词 (go go 或kitty kitty)
(?<name>exp) 匹配exp,并捕获文本到名称为name的组里 eg: /b(?<word>/w+)/b/s+/k<word>/b
(?'name'exp) 同上
(?:exp) 匹配exp,不捕获文本,不分组,不分配组号
(?=exp) 匹配exp前面的位置 eg: (?<=/s)/d+(?=/s) 匹配以空白符间隔的数字(不包括空白符)
(?<=exp) 匹配exp后面的位置
(?!exp) 匹配后面跟的不是exp的位置
(?<!exp) 匹配前面不是exp的位置 eg: /b/w+(?=ing/b) 匹配以ing结尾的单词(除ing之外的部分) dancing -> danc
(?#comment) 注释
代码/语法 | 说明 |
---|---|
/a | 报警字符(打印它的效果是电脑嘀一声) |
/b | 通常是单词分界位置,但如果在字符类里使用代表退格 |
/t | 制表符,Tab |
/r | 回车 |
/v | 竖向制表符 |
/f | 换页符 |
/n | 换行符 |
/e | Escape |
/0nn | ASCII代码中八进制代码为nn的字符 |
/xnn | ASCII代码中十六进制代码为nn的字符 |
/unnnn | Unicode代码中十六进制代码为nnnn的字符 |
/cN | ASCII控制字符。比如/cC代表Ctrl+C |
/A | 字符串开头(类似^,但不受处理多行选项的影响) |
/Z | 字符串结尾或行尾(不受处理多行选项的影响) |
/z | 字符串结尾(类似$,但不受处理多行选项的影响) |
/G | 当前搜索的开头 |
/p{name} | Unicode中命名为name的字符类,例如/p{IsGreek} |
(?>exp) | 贪婪子表达式 |
(?<x>-<y>exp) | 平衡组 |
(?im-nsx:exp) | 在子表达式exp中改变处理选项 |
(?im-nsx) | 为表达式后面的部分改变处理选项 |
(?(exp)yes|no) | 把exp当作零宽正向先行断言,如果在这个位置能匹配,使用yes作为此组的表达式;否则使用no |
(?(exp)yes) | 同上,只是使用空表达式作为no |
(?(name)yes|no) | 如果命名为name的组捕获到了内容,使用yes作为表达式;否则使用no |
(?(name)yes) |