« squid 反向加速/代理加速模式下 本机apache2的原IP log module - mod_extract_forwarded |
Main
| 交换(Switch) 路由(Routing) OSI 7层参考模型 »
December 9, 2004
模式匹配 pattern matching - Regular Expression & Shell Expression & perlre regex ...
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。
https://windtear.net/archives/2004/12/09/000353.html
模式匹配简单说就是高级查询用的条件
怎么高级:就体现在表达式上 正则表达式 RE 好多说法 很多工具命令也都支持一些
这里简单写几句
语法: grep sed 等普遍用到的是基本的正则表达式 用() 的扩展正则表达式 perl 自己搞的一些变量和处理方式 和 re 相似的 shell expressions
基础: [0123456789] 匹配任何单数字 0 1 ... 9 [^0123456789] 匹配任何非单数字 如 a b c @ ... , [0-9] 用 - 表示一段
前面可以看出 ] ^ - 都有用到 万一要正则匹配它们 有一些特殊处理: ] 写在最前 ^ 写在非最前 - 放在最后
. 匹配任何单字符 各种正则库都预先设定了一些人性化或者方便的匹配方法 如: 1. \w [[:alnum:]] 匹配字母和数字 [A-Za-z0-9] perl 用 \w GNU regex 都支持
2. \d [[:digit:]] 匹配任何数字 perl 用 \d GNU regex 用 [[:digit:]]
3. [[:alpha:]] GNU regex 匹配任何字母
4. \s PERL 匹配空
5.\W perl 匹配 非字母数字字符 [^A-Za-z0-9] GNU regex 也是
6. \D perl 匹配非数字
7. \S perl 匹配非空白
匹配开头 ^ 匹配结尾 $ \< \> 匹配前后空白
PERl 支持 \b \B 匹配(非)开头 \e \E 匹配(非)结尾
重复: 正则表达式后加字符 ? 空或1次 * 空或多次 + 一次或多次 {num} 正好 num 次 {num,} num 或更多 {,num} 最多 num次 {num1,num2} num1 num2 之间次 包括两头
两个正则表达式一块用 通过 | 连接 either or 的关系
不通正则表达式库的区别: 基本正则表达式: ? . * + ( { | } ) 有特殊意思 如果要用它们 加\ 扩展正则表达式和 PERL 正则表达式 shell expression: 只认识* ?
自动代理脚本支持 * ? shExpMatch(str, shexp)
http://hostingworks.com/support/faq/0054 http://www.perl.com/pub/doc/manual/html/pod/perlre.html http://wp.netscape.com/eng/mozilla/2.0/relnotes/demo/proxy-live.html
|
|
Posted by windtear at December 9, 2004 5:53 PM