正则基本知识
- 常用元字符
元字符 | 字符描述 |
---|---|
. | 匹配除换行以外的任意字符 |
\w,\W | 匹配字母或数字或下环线或汉字,大写W相反 |
\s,\S | 匹配任意空白符,大写\S相反 |
\d,\D | 匹配数字,大写\D相反 |
\b | 匹配单词的开始或结束 |
^ | 匹配字符串的开始,如果在[]中则表示不在的意思如[^a-z] |
$ | 匹配字符串的结束 |
- | 表示范围如[a-z]、[0-9] |
[] | 匹配括号中的任意一个字符 |
* | 匹配前面子表达式任意次 |
+ | 匹配前面的子表达式一次或多次(大于等于1次) |
? | 匹配0或1个正好在它之前的那个字符 |
{i,j} | 匹配指定范围数目的字符 |
php中的正则函数
- preg_match()
执行一个正则表达式匹配,详见http://php.net/manual/zh/function.preg-match.php
$pattern = "/abc/";
$subject = "abcdef";
preg_match($pattern, $subject, $matches);
print_r($matches);
该代码输出为
Array(
[0] => abc
)
- preg_replace()
执行一个正则表达式的搜索和替换,详见http://php.net/manual/zh/function.preg-replace.php
$string = 'April 15, 2003';
$pattern = '/(\w+) (\d+), (\d+)/i';
$replacement = '${1}1,$3';
echo preg_replace($pattern, $replacement, $string);
该代码的输出为:
April1,2003