正则表达式手册

  • 格式:doc
  • 大小:132.50 KB
  • 文档页数:6

正则表达式手册
正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。

该模式描述在查找文字主体时待匹配的一个或多个字符串。

正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

本文详细地列出了能在正则表达式中使用,以匹配文本的各种字符。

当你需要解释一个现有的正则表达式时,可以作为一个快捷的参考。

更多详细内容,请参考:Francois Liger,Craig McQueen,Pal Wilton[刘乐亭译] C#字符串和正则表达式参考手册北京:清华大学出版社2003.2
一. 匹配字符
二. 重复字符
三. 定位字符
注:定位字符可以应用于字符或组合,放在字符串的左端或右端四. 分组字符
五. 决策字符
注:上面表中列出的字符强迫处理器执行一次if-else决策六. 替换字符
注:以上为常用替换字符,不全
七. 转义序列
八. 选项标志
注:选项本身的信作含义如下表所示:
<?php
$string = "{startDate} = 1999-5-27";
$pattern = array("/(19|20)(\d{2})-(\d{1,2})-(\d{1,2})/","/^\s*{(\w+)}\s*=/"); $replacement = array("\\3/\\4/\\1\\2","$\\1=");
echo preg_replace($pattern, $replacement, $string); //$startDate=5/27/1999
?>
如果你仅仅想要检查一个字符串是否包含另外一个字符串, 不要使用preg_match(). 使用strpos()或strstr()替代完成工作会更快.
preg_match()返回pattern的匹配次数. 它的值将是0次(不匹配)或1次, 因为preg_match()在第一次匹配后将会停止搜索.preg_match_all()不同于此, 它会一直搜索subject 直到到达结尾. 如果发生错误preg_match()返回FALSE.
<?php
$str = <<<FOO
a: 1
b: 2
c: 3
FOO;
preg_match('/(\w+): (\d+)/', $str, $matches);
Array
(
[0] => a: 1
[1] => a
[2] => 1
)
preg_match_all('/(\w+): (\d+)/', $str, $matches);
Array
(
[0] => Array
(
[0] => a: 1
[1] => b: 2
[2] => c: 3
)
[1] => Array
(
[0] => a
[1] => b
[2] => c
)
[2] => Array
(
[0] => 1
[1] => 2
[2] => 3 )
)。