9.2.2 正则表达式语法介绍2
定界符
原子
元字符
模式修正符
Perl兼容正则表达式
正则表达式作为一个匹配的模版,是由原子(普通字符,例如字符a到z)、特殊字符(元字符,例如*、+和?等)、以及模式修正符三部分组成的文字模式。
一个最简单正则表达式至少包含一个原子。
将下面的正则表达式拆分如下:
'/<a.*?(?:|\\t|\\r|\\n)?href=[\"]?(.+?)[\"]?(?:(?:|\\t|\\r|\\n)+.*?)?>(.+?)<\/a.*?>/sim'
定界符:两个斜线”/”。
原子用到了< a href = ‘ “ / >等普通字符和\t \r \n等转义字符
元字符使用了 [] () | . ? * + 等具有特殊含义的字符
用到了模式修正符是在定界符最后一个斜线之后的三个字符: s i m
正则表达式作为一个匹配的模版,是由原子(普通字符,例如字符a到z)、特殊字符(元字符,例如*、+和?等)、以及模式修正符三部分组成的文字模式。
一个最简单正则表达式至少包含一个原子。
将下面的正则表达式拆分如下:
'/<a.*?(?:|\\t|\\r|\\n)?href=[\"]?(.+?)[\"]?(?:(?:|\\t|\\r|\\n)+.*?)?>(.+?)<\/a.*?>/sim'
定界符:两个斜线”/”。
原子用到了< a href = ‘ “ / >等普通字符和\t \r \n等转义字符
元字符使用了 [] () | . ? * + 等具有特殊含义的字符
用到了模式修正符是在定界符最后一个斜线之后的三个字符: s i m
1.php
<?php
$str = "aa1aaaaa3aaaa5aaaa77777aaaa2aaaa9aaaaa0aaaaaaa<br>";
$reg = "/\d/";
/* 定界符号: 多种都可以, 常用为 //
*
* 原子 : 最少的一个匹配单位 (放在定界符中), 在一个正则表达式中, 至少要有一个原子
* 元字符: 元字符不能单独使用的,修饰原子, 是用来扩展原子功能的和限定功能 (写在定界符号中)
*
* 模式修正符号: 修正, 对模式(正则)修正, (写在定界符号外面, 写在右边)
*
*/
echo $str."<br>";
echo preg_replace($reg, "#", $str)."<br>";
print_r(preg_split($reg, $str));
echo '<br>';
if(preg_match($reg, $str, $arr) ) {
echo "正则表达式 <b>{$reg}</b> 和字符串 <b>{$str}</b> 匹配成功!<br>";
print_r($arr);
} else {
echo "没有匹配上<br>";
}
test.php
<?php
$str = "aa1aaaaa3aaaa5aaaa77777aaaa2aaaa9aaaaa0aaaaaaa<br>";
$reg = "/\d/";
if(preg_match($reg, $str, $arr) ) {
echo "正则表达式 <b>{$reg}</b> 和字符串 <b>{$str}</b> 匹配成功!<br>";
print_r($arr);
} else {
echo "没有匹配上<br>";
}