码迷,mamicode.com
首页 > 其他好文 > 详细

<<鬼斧神工之正则表达式>>笔记整理

时间:2015-04-03 13:10:33      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:

第1章 初识正则表达式
 
正则表达式定义
  • 正则表达式是一种字符串搜索和匹配的工具
正则表达式应用举例
  • 手机输入法
  • Windows文件搜索
  • Linux列出文件命令
  • 网站用户注册
 
第2章 正则表达式函数解析
 
PHP中常用的正则表达式函数
  • $pattern = 正则表达式
  • $subject = 匹配的目标函数
  • preg_match($pattern, $subject)
  • preg_match_all($pattern, $subject, array &$matches)
          Code:
$pattern = ‘/[0-9]/’;
$subject = ‘weur3ui76as83s0tk9‘;
 
$m1 = $m2 = array();
 
$t1 = preg_match($pattern, $subject, $m1);
$t2 = preg_match_all($pattern, $subject, $m2);
 
show($m1);
echo ‘<hr />‘;
show($m2);
echo ‘<hr />‘;
show($t1. ‘||‘ .$t2);
 
  • preg_replace($pattern, $replacement, $subject)
  • preg_filter($pattern, $replacement, $subject)
          Code:
$pattern = array(‘/[0123]/‘, ‘/[456]/‘, ‘/[789]/‘);
$subject = array(‘weu‘, ‘r3ui‘, ‘76as83‘, ‘s‘, ‘0tk9‘);
$replacement = array(‘万‘, ‘事‘, ‘屋‘);
 
$str1 = preg_replace($pattern, $replacement, $subject);
$str2 = preg_filter($pattern, $replacement, $subject);
 
show($str1);
echo ‘<hr />‘;
show($str2);
  • preg_grep($pattern, array $input)
    Code:
$pattern = ‘/[0-9]/‘;
$subject = array(‘weu‘, ‘r3ui‘, ‘76as83‘, ‘s‘, ‘0tk9‘);
 
$arr = preg_grep($pattern, array $input);
 
show($arr);
  • preg_split($pattern, $subject)
           Code:
$pattern = ‘/[0-9]/’;
$subject = ‘银2桑3, 3么么哒~‘;
 
$arr = preg_split($pattern, $subject);
 
show($arr);
  • preg_quote($str)
    Code:
$str = ‘qwer{asdf}[1234]‘;
 
$str = preg_quote($str);
 
show($str);

PHP正则表达式函数总结
  • 都以preg_开头
  • 除preg_quote函数外,第一个参数都是正则表达式
  • preg_match - 表单炎症等
  • preg_match_all - 非法词语过滤等
 
第3章 正则表达式基本语法
 
界定符
  • 表示一个正则表达式的开始和结束
  • /[0-9]/
正则表达式工具
原子
  • 可见原子 - Unicode编码表中用键盘输出后肉眼可见的字符
  • 有哪些?
- 标点 ; " _ ? . 等
- 英文字母数字 a-z, A-Z, 0-9
- 汉字、日文、阿拉伯文等其他语言文字
- ∑, ∈, ∮, ≌ 等数理化公式符号
- 其他可见字符
 
  • 不可见原子 - Unicode编码表中用键盘输出后肉眼不可见的字符
  • 有哪些?
- 换行符 \n
- 回车 \r
- 制表符 \t
- 空格
- 其他不可见符号 
(ps: Unicode编码转换工具: http://tool.oschina.net/encode)
 
元字符
  • 原子的筛选方式
- |     匹配两个或者多个分支选择
- []     匹配方括号中的任意一个原子
- [^]   匹配除方括号中原子之外的任意字符
  • 原子的集合
- .     匹配除换行符之外的任意字符
- \d   匹配任意一个十进制数,即[0-9]
- \D  匹配任意一个非十进制数,即[^0-9]
- \s   匹配一个不可见原子,即[\f\n\r\t\v]
- \S   匹配一个可见原子,即[^\f\n\r\t\v]
- \w  匹配任意一个数字、字母或下划线,即[0-9a-zA-Z_]
- \W  匹配任意非一个数字、字母或下划线,即[^0-9a-zA-Z_]
 
量词
  • {n}      表示前面的原子恰好出现n次  
  • {n,}     表示前面的原子最少出现n次  
  • {n,m}  表示前面的原子最少出现n次,最多出现m次
  • *         匹配0次、1次或者多次其之前的原子,即{0,}
  • +         匹配1次或者多次其之前的原子,即{1,}
  • ?         匹配0次或者1次其之前的原子,即{0,1}
边界控制与模式单元
  • ^     匹配字符串开始的位置
  • $     匹配字符串结尾的位置
  • ()     匹配其中的整体为一格原子
 

<<鬼斧神工之正则表达式>>笔记整理

标签:

原文地址:http://www.cnblogs.com/wanshiwudexiaoren/p/4389715.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!