proxy代理   soft软件   IT 业界特快   norton 诺顿病毒库   代理列表   search FTP搜索   whois IP地理位置   blog 追求完美  
money理财   life生活   RSS聚合门户   firefox WEB浏览器   免费域名   typeset 假古文   AntiVirus 反病毒   ipcn 站点导航  

« 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

 

本blog WWW

Posted by windtear at December 9, 2004 5:53 PM

本站使用中的任何问题,请与 windtear @ windtear.net 联系
Copyright© 1999-2024 Windtear. All rights reserved.